From 3e48f1a2d2fb88d964142da33f7daf6ad6a794b4 Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Mon, 24 Mar 2025 09:48:43 +0000 Subject: [PATCH] CodeGen from PR 33346 in Azure/azure-rest-api-specs Merge ccee499de1cee05584e18fd327f83a3bde43cb83 into 24575e342cc2afed0064ba346cc3835df97b93f6 --- .../LiveMetrics/LiveMetrics.sln | 50 + .../src/Generated/AggregationType.cs | 57 + ...lectionConfigurationError.Serialization.cs | 177 + .../Generated/CollectionConfigurationError.cs | 96 + .../CollectionConfigurationErrorType.cs | 84 + ...llectionConfigurationInfo.Serialization.cs | 194 + .../Generated/CollectionConfigurationInfo.cs | 94 + .../DerivedMetricInfo.Serialization.cs | 200 + .../src/Generated/DerivedMetricInfo.cs | 109 + .../src/Generated/Docs/LiveMetricsClient.xml | 439 + ...ilterConjunctionGroupInfo.Serialization.cs | 151 + .../DocumentFilterConjunctionGroupInfo.cs | 81 + .../DocumentIngress.Serialization.cs | 158 + .../src/Generated/DocumentIngress.cs | 79 + .../DocumentStreamInfo.Serialization.cs | 161 + .../src/Generated/DocumentStreamInfo.cs | 83 + .../LiveMetrics/src/Generated/DocumentType.cs | 63 + .../src/Generated/Event.Serialization.cs | 168 + .../LiveMetrics/src/Generated/Event.cs | 36 + .../src/Generated/Exception.Serialization.cs | 185 + .../LiveMetrics/src/Generated/Exception.cs | 40 + ...ilterConjunctionGroupInfo.Serialization.cs | 153 + .../Generated/FilterConjunctionGroupInfo.cs | 76 + .../src/Generated/FilterInfo.Serialization.cs | 159 + .../LiveMetrics/src/Generated/FilterInfo.cs | 88 + .../src/Generated/Internal/Argument.cs | 129 + .../Internal/ChangeTrackingDictionary.cs | 167 + .../Generated/Internal/ChangeTrackingList.cs | 153 + .../Internal/ModelSerializationExtensions.cs | 399 + .../src/Generated/Internal/Optional.cs | 51 + .../Internal/RequestContentHelper.cs | 136 + .../Internal/Utf8JsonRequestContent.cs | 55 + .../KeyValuePairStringString.Serialization.cs | 151 + .../src/Generated/KeyValuePairStringString.cs | 82 + .../src/Generated/LiveMetricsClient.cs | 408 + .../LiveMetricsClientBuilderExtensions.cs | 35 + .../src/Generated/LiveMetricsClientOptions.cs | 37 + .../src/Generated/LiveMetricsModelFactory.cs | 148 + .../Generated/MetricPoint.Serialization.cs | 159 + .../LiveMetrics/src/Generated/MetricPoint.cs | 87 + .../MonitoringDataPoint.Serialization.cs | 344 + .../src/Generated/MonitoringDataPoint.cs | 157 + .../src/Generated/PredicateType.cs | 69 + .../Generated/ProcessCpuData.Serialization.cs | 151 + .../src/Generated/ProcessCpuData.cs | 81 + .../QuotaConfigurationInfo.Serialization.cs | 166 + .../src/Generated/QuotaConfigurationInfo.cs | 82 + .../RemoteDependency.Serialization.cs | 209 + .../src/Generated/RemoteDependency.cs | 48 + .../src/Generated/Request.Serialization.cs | 213 + .../LiveMetrics/src/Generated/Request.cs | 48 + .../src/Generated/TelemetryType.cs | 66 + .../src/Generated/Trace.Serialization.cs | 168 + .../LiveMetrics/src/Generated/Trace.cs | 36 + .../UnknownDocumentIngress.Serialization.cs | 157 + .../src/Generated/UnknownDocumentIngress.cs | 30 + .../LiveMetrics/src/LiveMetrics.csproj | 19 + .../src/Properties/AssemblyInfo.cs | 6 + .../Samples/Samples_LiveMetricsClient.cs | 454 + .../tests/LiveMetrics.Tests.csproj | 19 + .../LiveMetrics/tsp-location.yaml | 4 + .../Azure.ResourceManager.ImpactReporting.sln | 56 + .../CHANGELOG.md | 11 + .../Directory.Build.props | 6 + .../README.md | 80 + ....ResourceManager.ImpactReporting.net8.0.cs | 616 ++ ...eManager.ImpactReporting.netstandard2.0.cs | 616 ++ .../assets.json | 7 + ...urceManager.ImpactReporting.Samples.csproj | 13 + .../Samples/Sample_ConnectorCollection.cs | 191 + .../Samples/Sample_ConnectorResource.cs | 106 + .../Sample_ImpactCategoryCollection.cs | 154 + .../Samples/Sample_ImpactCategoryResource.cs | 47 + .../Samples/Sample_InsightCollection.cs | 405 + .../Samples/Sample_InsightResource.cs | 174 + .../Sample_WorkloadImpactCollection.cs | 369 + .../Samples/Sample_WorkloadImpactResource.cs | 276 + ...ure.ResourceManager.ImpactReporting.csproj | 8 + .../ArmImpactReportingModelFactory.cs | 213 + .../src/Generated/ConnectorCollection.cs | 494 + .../Generated/ConnectorData.Serialization.cs | 155 + .../src/Generated/ConnectorData.cs | 75 + .../ConnectorResource.Serialization.cs | 26 + .../src/Generated/ConnectorResource.cs | 343 + .../Extensions/ImpactReportingExtensions.cs | 385 + .../MockableImpactReportingArmClient.cs | 85 + ...ableImpactReportingSubscriptionResource.cs | 243 + .../src/Generated/ImpactCategoryCollection.cs | 389 + .../ImpactCategoryData.Serialization.cs | 155 + .../src/Generated/ImpactCategoryData.cs | 75 + .../ImpactCategoryResource.Serialization.cs | 26 + .../src/Generated/ImpactCategoryResource.cs | 170 + .../src/Generated/InsightCollection.cs | 497 + .../Generated/InsightData.Serialization.cs | 155 + .../src/Generated/InsightData.cs | 75 + .../InsightResource.Serialization.cs | 26 + .../src/Generated/InsightResource.cs | 354 + .../src/Generated/Internal/Argument.cs | 129 + .../Internal/ChangeTrackingDictionary.cs | 167 + .../Generated/Internal/ChangeTrackingList.cs | 153 + .../Internal/ModelSerializationExtensions.cs | 399 + .../src/Generated/Internal/Optional.cs | 51 + .../Internal/Utf8JsonRequestContent.cs | 55 + .../ConnectorOperationSource.cs | 36 + .../ImpactReportingArmOperation.cs | 94 + .../ImpactReportingArmOperationOfT.cs | 100 + .../WorkloadImpactOperationSource.cs | 36 + .../ClientIncidentDetails.Serialization.cs | 144 + .../Generated/Models/ClientIncidentDetails.cs | 69 + .../src/Generated/Models/ConfidenceLevel.cs | 54 + .../Models/Connectivity.Serialization.cs | 178 + .../src/Generated/Models/Connectivity.cs | 100 + .../ConnectorListResult.Serialization.cs | 151 + .../Generated/Models/ConnectorListResult.cs | 80 + .../Models/ConnectorPatch.Serialization.cs | 133 + .../src/Generated/Models/ConnectorPatch.cs | 76 + .../ConnectorProperties.Serialization.cs | 180 + .../Generated/Models/ConnectorProperties.cs | 94 + ...ConnectorUpdateProperties.Serialization.cs | 133 + .../Models/ConnectorUpdateProperties.cs | 65 + .../Generated/Models/Content.Serialization.cs | 134 + .../src/Generated/Models/Content.cs | 82 + .../ErrorDetailProperties.Serialization.cs | 140 + .../Generated/Models/ErrorDetailProperties.cs | 69 + .../ExpectedValueRange.Serialization.cs | 134 + .../Generated/Models/ExpectedValueRange.cs | 78 + .../ImpactCategoryListResult.Serialization.cs | 151 + .../Models/ImpactCategoryListResult.cs | 80 + .../ImpactCategoryProperties.Serialization.cs | 194 + .../Models/ImpactCategoryProperties.cs | 92 + .../Models/ImpactDetails.Serialization.cs | 157 + .../src/Generated/Models/ImpactDetails.cs | 92 + .../src/Generated/Models/IncidentSource.cs | 60 + .../Models/InsightListResult.Serialization.cs | 151 + .../src/Generated/Models/InsightListResult.cs | 80 + .../Models/InsightProperties.Serialization.cs | 239 + .../src/Generated/Models/InsightProperties.cs | 120 + ...opertiesAdditionalDetails.Serialization.cs | 118 + .../InsightPropertiesAdditionalDetails.cs | 60 + .../src/Generated/Models/MetricUnit.cs | 81 + .../Models/Performance.Serialization.cs | 195 + .../src/Generated/Models/Performance.cs | 81 + .../src/Generated/Models/Platform.cs | 48 + .../src/Generated/Models/Protocol.cs | 69 + .../src/Generated/Models/ProvisioningState.cs | 54 + .../RequiredImpactProperties.Serialization.cs | 151 + .../Models/RequiredImpactProperties.cs | 80 + .../Models/SourceOrTarget.Serialization.cs | 129 + .../src/Generated/Models/SourceOrTarget.cs | 65 + .../src/Generated/Models/Toolset.cs | 72 + .../Models/Workload.Serialization.cs | 144 + .../src/Generated/Models/Workload.cs | 69 + .../WorkloadImpactListResult.Serialization.cs | 151 + .../Models/WorkloadImpactListResult.cs | 80 + .../WorkloadImpactProperties.Serialization.cs | 378 + .../Models/WorkloadImpactProperties.cs | 146 + ...rtiesAdditionalProperties.Serialization.cs | 118 + ...oadImpactPropertiesAdditionalProperties.cs | 60 + .../src/Generated/ProviderConstants.cs | 16 + .../ConnectorsRestOperations.cs | 533 ++ .../ImpactCategoriesRestOperations.cs | 303 + .../RestOperations/InsightsRestOperations.cs | 487 + .../WorkloadImpactsRestOperations.cs | 441 + .../src/Generated/WorkloadImpactCollection.cs | 494 + .../WorkloadImpactData.Serialization.cs | 155 + .../src/Generated/WorkloadImpactData.cs | 75 + .../WorkloadImpactResource.Serialization.cs | 26 + .../src/Generated/WorkloadImpactResource.cs | 419 + .../src/Properties/AssemblyInfo.cs | 11 + ...sourceManager.ImpactReporting.Tests.csproj | 8 + .../ImpactReportingManagementTestBase.cs | 45 + ...mpactReportingManagementTestEnvironment.cs | 11 + .../tsp-location.yaml | 4 + sdk/impactreporting/ci.mgmt.yml | 26 + .../Microsoft.App.DynamicSessions.sln | 50 + .../src/Generated/CodeExecution.cs | 355 + .../src/Generated/CodeInputType.cs | 54 + .../src/Generated/Docs/CodeExecution.xml | 291 + .../Generated/Docs/SessionResourceFiles.xml | 253 + .../src/Generated/DynamicSessionsClient.cs | 79 + .../Generated/DynamicSessionsClientOptions.cs | 37 + .../Generated/ErrorResponse.Serialization.cs | 143 + .../src/Generated/ErrorResponse.cs | 76 + .../src/Generated/ExecutionType.cs | 51 + .../src/Generated/Internal/Argument.cs | 129 + .../Internal/ChangeTrackingDictionary.cs | 167 + .../Generated/Internal/ChangeTrackingList.cs | 153 + .../Internal/ModelSerializationExtensions.cs | 399 + .../MultipartFormDataRequestContent.cs | 203 + .../src/Generated/Internal/Optional.cs | 51 + .../Internal/Utf8JsonRequestContent.cs | 55 + ...pDynamicSessionsClientBuilderExtensions.cs | 35 + ...MicrosoftAppDynamicSessionsModelFactory.cs | 75 + .../src/Generated/OperationState.cs | 60 + ...ssionCodeExecutionRequest.Serialization.cs | 167 + .../Generated/SessionCodeExecutionRequest.cs | 93 + ...sionCodeExecutionResource.Serialization.cs | 207 + .../Generated/SessionCodeExecutionResource.cs | 99 + ...essionCodeExecutionResult.Serialization.cs | 194 + .../Generated/SessionCodeExecutionResult.cs | 106 + .../SessionResourceFile.Serialization.cs | 191 + .../src/Generated/SessionResourceFile.cs | 96 + .../src/Generated/SessionResourceFiles.cs | 722 ++ .../Generated/UploadRequest.Serialization.cs | 175 + .../src/Generated/UploadRequest.cs | 76 + .../src/Microsoft.App.DynamicSessions.csproj | 19 + .../src/Properties/AssemblyInfo.cs | 6 + .../Samples/Samples_CodeExecution.cs | 342 + .../Samples/Samples_SessionResourceFiles.cs | 268 + ...Microsoft.App.DynamicSessions.Tests.csproj | 19 + .../tsp-location.yaml | 4 + .../Configuration.json | 12 + .../tsp-location.yaml | 4 + .../tspCodeModel.json | 8501 +++++++++++++++++ sdk/resourcemanager/ci.mgmt.yml | 2 + sdk/storage/ci.yml | 2 + 216 files changed, 39135 insertions(+) create mode 100644 sdk/applicationinsights/LiveMetrics/LiveMetrics.sln create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/AggregationType.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationError.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationError.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationErrorType.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationInfo.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationInfo.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/DerivedMetricInfo.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/DerivedMetricInfo.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/Docs/LiveMetricsClient.xml create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/DocumentFilterConjunctionGroupInfo.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/DocumentFilterConjunctionGroupInfo.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/DocumentIngress.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/DocumentIngress.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/DocumentStreamInfo.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/DocumentStreamInfo.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/DocumentType.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/Event.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/Event.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/Exception.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/Exception.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/FilterConjunctionGroupInfo.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/FilterConjunctionGroupInfo.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/FilterInfo.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/FilterInfo.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/Internal/Argument.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/Internal/ChangeTrackingDictionary.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/Internal/ChangeTrackingList.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/Internal/ModelSerializationExtensions.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/Internal/Optional.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/Internal/RequestContentHelper.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/Internal/Utf8JsonRequestContent.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/KeyValuePairStringString.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/KeyValuePairStringString.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/LiveMetricsClient.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/LiveMetricsClientBuilderExtensions.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/LiveMetricsClientOptions.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/LiveMetricsModelFactory.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/MetricPoint.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/MetricPoint.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/MonitoringDataPoint.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/MonitoringDataPoint.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/PredicateType.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/ProcessCpuData.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/ProcessCpuData.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/QuotaConfigurationInfo.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/QuotaConfigurationInfo.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/RemoteDependency.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/RemoteDependency.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/Request.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/Request.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/TelemetryType.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/Trace.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/Trace.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/UnknownDocumentIngress.Serialization.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/Generated/UnknownDocumentIngress.cs create mode 100644 sdk/applicationinsights/LiveMetrics/src/LiveMetrics.csproj create mode 100644 sdk/applicationinsights/LiveMetrics/src/Properties/AssemblyInfo.cs create mode 100644 sdk/applicationinsights/LiveMetrics/tests/Generated/Samples/Samples_LiveMetricsClient.cs create mode 100644 sdk/applicationinsights/LiveMetrics/tests/LiveMetrics.Tests.csproj create mode 100644 sdk/applicationinsights/LiveMetrics/tsp-location.yaml create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/Azure.ResourceManager.ImpactReporting.sln create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/CHANGELOG.md create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/Directory.Build.props create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/README.md create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/api/Azure.ResourceManager.ImpactReporting.net8.0.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/api/Azure.ResourceManager.ImpactReporting.netstandard2.0.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/assets.json create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Azure.ResourceManager.ImpactReporting.Samples.csproj create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_ConnectorCollection.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_ConnectorResource.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_ImpactCategoryCollection.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_ImpactCategoryResource.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_InsightCollection.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_InsightResource.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_WorkloadImpactCollection.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_WorkloadImpactResource.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Azure.ResourceManager.ImpactReporting.csproj create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ArmImpactReportingModelFactory.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorCollection.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorData.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorData.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorResource.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorResource.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Extensions/ImpactReportingExtensions.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Extensions/MockableImpactReportingArmClient.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Extensions/MockableImpactReportingSubscriptionResource.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryCollection.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryData.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryData.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryResource.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryResource.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightCollection.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightData.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightData.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightResource.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightResource.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/Argument.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/ChangeTrackingDictionary.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/ChangeTrackingList.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/ModelSerializationExtensions.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/Optional.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/Utf8JsonRequestContent.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/LongRunningOperation/ConnectorOperationSource.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/LongRunningOperation/ImpactReportingArmOperation.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/LongRunningOperation/ImpactReportingArmOperationOfT.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/LongRunningOperation/WorkloadImpactOperationSource.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ClientIncidentDetails.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ClientIncidentDetails.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConfidenceLevel.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Connectivity.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Connectivity.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorListResult.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorListResult.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorPatch.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorPatch.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorProperties.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorProperties.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorUpdateProperties.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorUpdateProperties.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Content.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Content.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ErrorDetailProperties.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ErrorDetailProperties.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ExpectedValueRange.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ExpectedValueRange.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactCategoryListResult.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactCategoryListResult.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactCategoryProperties.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactCategoryProperties.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactDetails.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactDetails.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/IncidentSource.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightListResult.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightListResult.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightProperties.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightProperties.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightPropertiesAdditionalDetails.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightPropertiesAdditionalDetails.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/MetricUnit.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Performance.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Performance.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Platform.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Protocol.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ProvisioningState.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/RequiredImpactProperties.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/RequiredImpactProperties.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/SourceOrTarget.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/SourceOrTarget.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Toolset.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Workload.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Workload.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactListResult.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactListResult.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactProperties.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactProperties.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactPropertiesAdditionalProperties.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactPropertiesAdditionalProperties.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ProviderConstants.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/RestOperations/ConnectorsRestOperations.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/RestOperations/ImpactCategoriesRestOperations.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/RestOperations/InsightsRestOperations.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/RestOperations/WorkloadImpactsRestOperations.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactCollection.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactData.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactData.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactResource.Serialization.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactResource.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Properties/AssemblyInfo.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/tests/Azure.ResourceManager.ImpactReporting.Tests.csproj create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/tests/ImpactReportingManagementTestBase.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/tests/ImpactReportingManagementTestEnvironment.cs create mode 100644 sdk/impactreporting/Azure.ResourceManager.ImpactReporting/tsp-location.yaml create mode 100644 sdk/impactreporting/ci.mgmt.yml create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/Microsoft.App.DynamicSessions.sln create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/CodeExecution.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/CodeInputType.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Docs/CodeExecution.xml create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Docs/SessionResourceFiles.xml create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/DynamicSessionsClient.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/DynamicSessionsClientOptions.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/ErrorResponse.Serialization.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/ErrorResponse.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/ExecutionType.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/Argument.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/ChangeTrackingDictionary.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/ChangeTrackingList.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/ModelSerializationExtensions.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/MultipartFormDataRequestContent.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/Optional.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/Utf8JsonRequestContent.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/MicrosoftAppDynamicSessionsClientBuilderExtensions.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/MicrosoftAppDynamicSessionsModelFactory.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/OperationState.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionRequest.Serialization.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionRequest.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionResource.Serialization.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionResource.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionResult.Serialization.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionResult.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionResourceFile.Serialization.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionResourceFile.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionResourceFiles.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/UploadRequest.Serialization.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/UploadRequest.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Microsoft.App.DynamicSessions.csproj create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Properties/AssemblyInfo.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/tests/Generated/Samples/Samples_CodeExecution.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/tests/Generated/Samples/Samples_SessionResourceFiles.cs create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/tests/Microsoft.App.DynamicSessions.Tests.csproj create mode 100644 sdk/microsoft.app/Microsoft.App.DynamicSessions/tsp-location.yaml create mode 100644 sdk/qumulo/Azure.ResourceManager.Qumulo/Configuration.json create mode 100644 sdk/qumulo/Azure.ResourceManager.Qumulo/tsp-location.yaml create mode 100644 sdk/qumulo/Azure.ResourceManager.Qumulo/tspCodeModel.json diff --git a/sdk/applicationinsights/LiveMetrics/LiveMetrics.sln b/sdk/applicationinsights/LiveMetrics/LiveMetrics.sln new file mode 100644 index 000000000000..202d00182aa1 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/LiveMetrics.sln @@ -0,0 +1,50 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29709.97 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LiveMetrics", "src\LiveMetrics.csproj", "{28FF4005-4467-4E36-92E7-DEA27DEB1519}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LiveMetrics.Tests", "tests\LiveMetrics.Tests.csproj", "{1F1CD1D4-9932-4B73-99D8-C252A67D4B46}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B0C276D1-2930-4887-B29A-D1A33E7009A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B0C276D1-2930-4887-B29A-D1A33E7009A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B0C276D1-2930-4887-B29A-D1A33E7009A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B0C276D1-2930-4887-B29A-D1A33E7009A2}.Release|Any CPU.Build.0 = Release|Any CPU + {8E9A77AC-792A-4432-8320-ACFD46730401}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E9A77AC-792A-4432-8320-ACFD46730401}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E9A77AC-792A-4432-8320-ACFD46730401}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E9A77AC-792A-4432-8320-ACFD46730401}.Release|Any CPU.Build.0 = Release|Any CPU + {A4241C1F-A53D-474C-9E4E-075054407E74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4241C1F-A53D-474C-9E4E-075054407E74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4241C1F-A53D-474C-9E4E-075054407E74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4241C1F-A53D-474C-9E4E-075054407E74}.Release|Any CPU.Build.0 = Release|Any CPU + {FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Release|Any CPU.Build.0 = Release|Any CPU + {85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Release|Any CPU.Build.0 = Release|Any CPU + {28FF4005-4467-4E36-92E7-DEA27DEB1519}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28FF4005-4467-4E36-92E7-DEA27DEB1519}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28FF4005-4467-4E36-92E7-DEA27DEB1519}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28FF4005-4467-4E36-92E7-DEA27DEB1519}.Release|Any CPU.Build.0 = Release|Any CPU + {1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A97F4B90-2591-4689-B1F8-5F21FE6D6CAE} + EndGlobalSection +EndGlobal diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/AggregationType.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/AggregationType.cs new file mode 100644 index 000000000000..f785f0dec7ee --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/AggregationType.cs @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace LiveMetrics +{ + /// Aggregation type. + public readonly partial struct AggregationType : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public AggregationType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string AvgValue = "Avg"; + private const string SumValue = "Sum"; + private const string MinValue = "Min"; + private const string MaxValue = "Max"; + + /// Average. + public static AggregationType Avg { get; } = new AggregationType(AvgValue); + /// Sum. + public static AggregationType Sum { get; } = new AggregationType(SumValue); + /// Minimum. + public static AggregationType Min { get; } = new AggregationType(MinValue); + /// Maximum. + public static AggregationType Max { get; } = new AggregationType(MaxValue); + /// Determines if two values are the same. + public static bool operator ==(AggregationType left, AggregationType right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(AggregationType left, AggregationType right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator AggregationType(string value) => new AggregationType(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is AggregationType other && Equals(other); + /// + public bool Equals(AggregationType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + /// + public override string ToString() => _value; + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationError.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationError.Serialization.cs new file mode 100644 index 000000000000..981f6569019f --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationError.Serialization.cs @@ -0,0 +1,177 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + public partial class CollectionConfigurationError : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(CollectionConfigurationError)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("CollectionConfigurationErrorType"u8); + writer.WriteStringValue(CollectionConfigurationErrorType.ToString()); + writer.WritePropertyName("Message"u8); + writer.WriteStringValue(Message); + writer.WritePropertyName("FullException"u8); + writer.WriteStringValue(FullException); + writer.WritePropertyName("Data"u8); + writer.WriteStartArray(); + foreach (var item in Data) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + CollectionConfigurationError IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(CollectionConfigurationError)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeCollectionConfigurationError(document.RootElement, options); + } + + internal static CollectionConfigurationError DeserializeCollectionConfigurationError(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + CollectionConfigurationErrorType collectionConfigurationErrorType = default; + string message = default; + string fullException = default; + IList data = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("CollectionConfigurationErrorType"u8)) + { + collectionConfigurationErrorType = new CollectionConfigurationErrorType(property.Value.GetString()); + continue; + } + if (property.NameEquals("Message"u8)) + { + message = property.Value.GetString(); + continue; + } + if (property.NameEquals("FullException"u8)) + { + fullException = property.Value.GetString(); + continue; + } + if (property.NameEquals("Data"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(KeyValuePairStringString.DeserializeKeyValuePairStringString(item, options)); + } + data = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new CollectionConfigurationError(collectionConfigurationErrorType, message, fullException, data, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(CollectionConfigurationError)} does not support writing '{options.Format}' format."); + } + } + + CollectionConfigurationError IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeCollectionConfigurationError(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(CollectionConfigurationError)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static CollectionConfigurationError FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeCollectionConfigurationError(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationError.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationError.cs new file mode 100644 index 000000000000..2c827786fc4b --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationError.cs @@ -0,0 +1,96 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace LiveMetrics +{ + /// Represents an error while SDK parses and applies an instance of CollectionConfigurationInfo. + public partial class CollectionConfigurationError + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// Error type. + /// Error message. + /// Exception that led to the creation of the configuration error. + /// Custom properties to add more information to the error. + /// , or is null. + public CollectionConfigurationError(CollectionConfigurationErrorType collectionConfigurationErrorType, string message, string fullException, IEnumerable data) + { + Argument.AssertNotNull(message, nameof(message)); + Argument.AssertNotNull(fullException, nameof(fullException)); + Argument.AssertNotNull(data, nameof(data)); + + CollectionConfigurationErrorType = collectionConfigurationErrorType; + Message = message; + FullException = fullException; + Data = data.ToList(); + } + + /// Initializes a new instance of . + /// Error type. + /// Error message. + /// Exception that led to the creation of the configuration error. + /// Custom properties to add more information to the error. + /// Keeps track of any properties unknown to the library. + internal CollectionConfigurationError(CollectionConfigurationErrorType collectionConfigurationErrorType, string message, string fullException, IList data, IDictionary serializedAdditionalRawData) + { + CollectionConfigurationErrorType = collectionConfigurationErrorType; + Message = message; + FullException = fullException; + Data = data; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal CollectionConfigurationError() + { + } + + /// Error type. + public CollectionConfigurationErrorType CollectionConfigurationErrorType { get; } + /// Error message. + public string Message { get; } + /// Exception that led to the creation of the configuration error. + public string FullException { get; } + /// Custom properties to add more information to the error. + public IList Data { get; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationErrorType.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationErrorType.cs new file mode 100644 index 000000000000..9e116938866b --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationErrorType.cs @@ -0,0 +1,84 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace LiveMetrics +{ + /// Collection configuration error type reported by the client SDK. + public readonly partial struct CollectionConfigurationErrorType : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public CollectionConfigurationErrorType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string UnknownValue = "Unknown"; + private const string PerformanceCounterParsingValue = "PerformanceCounterParsing"; + private const string PerformanceCounterUnexpectedValue = "PerformanceCounterUnexpected"; + private const string PerformanceCounterDuplicateIdsValue = "PerformanceCounterDuplicateIds"; + private const string DocumentStreamDuplicateIdsValue = "DocumentStreamDuplicateIds"; + private const string DocumentStreamFailureToCreateValue = "DocumentStreamFailureToCreate"; + private const string DocumentStreamFailureToCreateFilterUnexpectedValue = "DocumentStreamFailureToCreateFilterUnexpected"; + private const string MetricDuplicateIdsValue = "MetricDuplicateIds"; + private const string MetricTelemetryTypeUnsupportedValue = "MetricTelemetryTypeUnsupported"; + private const string MetricFailureToCreateValue = "MetricFailureToCreate"; + private const string MetricFailureToCreateFilterUnexpectedValue = "MetricFailureToCreateFilterUnexpected"; + private const string FilterFailureToCreateUnexpectedValue = "FilterFailureToCreateUnexpected"; + private const string CollectionConfigurationFailureToCreateUnexpectedValue = "CollectionConfigurationFailureToCreateUnexpected"; + + /// Unknown error type. + public static CollectionConfigurationErrorType Unknown { get; } = new CollectionConfigurationErrorType(UnknownValue); + /// Performance counter parsing error. + public static CollectionConfigurationErrorType PerformanceCounterParsing { get; } = new CollectionConfigurationErrorType(PerformanceCounterParsingValue); + /// Performance counter unexpected error. + public static CollectionConfigurationErrorType PerformanceCounterUnexpected { get; } = new CollectionConfigurationErrorType(PerformanceCounterUnexpectedValue); + /// Performance counter duplicate ids. + public static CollectionConfigurationErrorType PerformanceCounterDuplicateIds { get; } = new CollectionConfigurationErrorType(PerformanceCounterDuplicateIdsValue); + /// Document stream duplication ids. + public static CollectionConfigurationErrorType DocumentStreamDuplicateIds { get; } = new CollectionConfigurationErrorType(DocumentStreamDuplicateIdsValue); + /// Document stream failed to create. + public static CollectionConfigurationErrorType DocumentStreamFailureToCreate { get; } = new CollectionConfigurationErrorType(DocumentStreamFailureToCreateValue); + /// Document stream failed to create filter unexpectedly. + public static CollectionConfigurationErrorType DocumentStreamFailureToCreateFilterUnexpected { get; } = new CollectionConfigurationErrorType(DocumentStreamFailureToCreateFilterUnexpectedValue); + /// Metric duplicate ids. + public static CollectionConfigurationErrorType MetricDuplicateIds { get; } = new CollectionConfigurationErrorType(MetricDuplicateIdsValue); + /// Metric telemetry type unsupported. + public static CollectionConfigurationErrorType MetricTelemetryTypeUnsupported { get; } = new CollectionConfigurationErrorType(MetricTelemetryTypeUnsupportedValue); + /// Metric failed to create. + public static CollectionConfigurationErrorType MetricFailureToCreate { get; } = new CollectionConfigurationErrorType(MetricFailureToCreateValue); + /// Metric failed to create filter unexpectedly. + public static CollectionConfigurationErrorType MetricFailureToCreateFilterUnexpected { get; } = new CollectionConfigurationErrorType(MetricFailureToCreateFilterUnexpectedValue); + /// Filter failed to create unexpectedly. + public static CollectionConfigurationErrorType FilterFailureToCreateUnexpected { get; } = new CollectionConfigurationErrorType(FilterFailureToCreateUnexpectedValue); + /// Collection configuration failed to create unexpectedly. + public static CollectionConfigurationErrorType CollectionConfigurationFailureToCreateUnexpected { get; } = new CollectionConfigurationErrorType(CollectionConfigurationFailureToCreateUnexpectedValue); + /// Determines if two values are the same. + public static bool operator ==(CollectionConfigurationErrorType left, CollectionConfigurationErrorType right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(CollectionConfigurationErrorType left, CollectionConfigurationErrorType right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator CollectionConfigurationErrorType(string value) => new CollectionConfigurationErrorType(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is CollectionConfigurationErrorType other && Equals(other); + /// + public bool Equals(CollectionConfigurationErrorType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + /// + public override string ToString() => _value; + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationInfo.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationInfo.Serialization.cs new file mode 100644 index 000000000000..a2cccb1e0ee5 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationInfo.Serialization.cs @@ -0,0 +1,194 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + public partial class CollectionConfigurationInfo : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(CollectionConfigurationInfo)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("ETag"u8); + writer.WriteStringValue(ETag); + writer.WritePropertyName("Metrics"u8); + writer.WriteStartArray(); + foreach (var item in Metrics) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + writer.WritePropertyName("DocumentStreams"u8); + writer.WriteStartArray(); + foreach (var item in DocumentStreams) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(QuotaInfo)) + { + writer.WritePropertyName("QuotaInfo"u8); + writer.WriteObjectValue(QuotaInfo, options); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + CollectionConfigurationInfo IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(CollectionConfigurationInfo)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeCollectionConfigurationInfo(document.RootElement, options); + } + + internal static CollectionConfigurationInfo DeserializeCollectionConfigurationInfo(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string eTag = default; + IReadOnlyList metrics = default; + IReadOnlyList documentStreams = default; + QuotaConfigurationInfo quotaInfo = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("ETag"u8)) + { + eTag = property.Value.GetString(); + continue; + } + if (property.NameEquals("Metrics"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(DerivedMetricInfo.DeserializeDerivedMetricInfo(item, options)); + } + metrics = array; + continue; + } + if (property.NameEquals("DocumentStreams"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(DocumentStreamInfo.DeserializeDocumentStreamInfo(item, options)); + } + documentStreams = array; + continue; + } + if (property.NameEquals("QuotaInfo"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + quotaInfo = QuotaConfigurationInfo.DeserializeQuotaConfigurationInfo(property.Value, options); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new CollectionConfigurationInfo(eTag, metrics, documentStreams, quotaInfo, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(CollectionConfigurationInfo)} does not support writing '{options.Format}' format."); + } + } + + CollectionConfigurationInfo IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeCollectionConfigurationInfo(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(CollectionConfigurationInfo)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static CollectionConfigurationInfo FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeCollectionConfigurationInfo(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationInfo.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationInfo.cs new file mode 100644 index 000000000000..2202b8fcc18b --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/CollectionConfigurationInfo.cs @@ -0,0 +1,94 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace LiveMetrics +{ + /// Represents the collection configuration - a customizable description of performance counters, metrics, and full telemetry documents to be collected by the client SDK. + public partial class CollectionConfigurationInfo + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// An encoded string that indicates whether the collection configuration is changed. + /// An array of metric configuration info. + /// An array of document stream configuration info. + /// , or is null. + internal CollectionConfigurationInfo(string eTag, IEnumerable metrics, IEnumerable documentStreams) + { + Argument.AssertNotNull(eTag, nameof(eTag)); + Argument.AssertNotNull(metrics, nameof(metrics)); + Argument.AssertNotNull(documentStreams, nameof(documentStreams)); + + ETag = eTag; + Metrics = metrics.ToList(); + DocumentStreams = documentStreams.ToList(); + } + + /// Initializes a new instance of . + /// An encoded string that indicates whether the collection configuration is changed. + /// An array of metric configuration info. + /// An array of document stream configuration info. + /// Controls document quotas to be sent to Live Metrics. + /// Keeps track of any properties unknown to the library. + internal CollectionConfigurationInfo(string eTag, IReadOnlyList metrics, IReadOnlyList documentStreams, QuotaConfigurationInfo quotaInfo, IDictionary serializedAdditionalRawData) + { + ETag = eTag; + Metrics = metrics; + DocumentStreams = documentStreams; + QuotaInfo = quotaInfo; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal CollectionConfigurationInfo() + { + } + + /// An encoded string that indicates whether the collection configuration is changed. + public string ETag { get; } + /// An array of metric configuration info. + public IReadOnlyList Metrics { get; } + /// An array of document stream configuration info. + public IReadOnlyList DocumentStreams { get; } + /// Controls document quotas to be sent to Live Metrics. + public QuotaConfigurationInfo QuotaInfo { get; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/DerivedMetricInfo.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/DerivedMetricInfo.Serialization.cs new file mode 100644 index 000000000000..33f866d682b4 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/DerivedMetricInfo.Serialization.cs @@ -0,0 +1,200 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + public partial class DerivedMetricInfo : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(DerivedMetricInfo)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("Id"u8); + writer.WriteStringValue(Id); + writer.WritePropertyName("TelemetryType"u8); + writer.WriteStringValue(TelemetryType); + writer.WritePropertyName("FilterGroups"u8); + writer.WriteStartArray(); + foreach (var item in FilterGroups) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + writer.WritePropertyName("Projection"u8); + writer.WriteStringValue(Projection); + writer.WritePropertyName("Aggregation"u8); + writer.WriteStringValue(Aggregation.ToString()); + writer.WritePropertyName("BackEndAggregation"u8); + writer.WriteStringValue(BackEndAggregation.ToString()); + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + DerivedMetricInfo IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(DerivedMetricInfo)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeDerivedMetricInfo(document.RootElement, options); + } + + internal static DerivedMetricInfo DeserializeDerivedMetricInfo(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string id = default; + string telemetryType = default; + IReadOnlyList filterGroups = default; + string projection = default; + AggregationType aggregation = default; + AggregationType backEndAggregation = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("Id"u8)) + { + id = property.Value.GetString(); + continue; + } + if (property.NameEquals("TelemetryType"u8)) + { + telemetryType = property.Value.GetString(); + continue; + } + if (property.NameEquals("FilterGroups"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(FilterConjunctionGroupInfo.DeserializeFilterConjunctionGroupInfo(item, options)); + } + filterGroups = array; + continue; + } + if (property.NameEquals("Projection"u8)) + { + projection = property.Value.GetString(); + continue; + } + if (property.NameEquals("Aggregation"u8)) + { + aggregation = new AggregationType(property.Value.GetString()); + continue; + } + if (property.NameEquals("BackEndAggregation"u8)) + { + backEndAggregation = new AggregationType(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new DerivedMetricInfo( + id, + telemetryType, + filterGroups, + projection, + aggregation, + backEndAggregation, + serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(DerivedMetricInfo)} does not support writing '{options.Format}' format."); + } + } + + DerivedMetricInfo IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeDerivedMetricInfo(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(DerivedMetricInfo)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static DerivedMetricInfo FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeDerivedMetricInfo(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/DerivedMetricInfo.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/DerivedMetricInfo.cs new file mode 100644 index 000000000000..bf65e8969c59 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/DerivedMetricInfo.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace LiveMetrics +{ + /// A metric configuration set by UX to scope the metrics it's interested in. + public partial class DerivedMetricInfo + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// metric configuration identifier. + /// Telemetry type. + /// A collection of filters to scope metrics that UX needs. + /// Telemetry's metric dimension whose value is to be aggregated. Example values: Duration, Count(),... + /// Aggregation type. This is the aggregation done from everything within a single server. + /// Aggregation type. This Aggregation is done across the values for all the servers taken together. + /// , , or is null. + internal DerivedMetricInfo(string id, string telemetryType, IEnumerable filterGroups, string projection, AggregationType aggregation, AggregationType backEndAggregation) + { + Argument.AssertNotNull(id, nameof(id)); + Argument.AssertNotNull(telemetryType, nameof(telemetryType)); + Argument.AssertNotNull(filterGroups, nameof(filterGroups)); + Argument.AssertNotNull(projection, nameof(projection)); + + Id = id; + TelemetryType = telemetryType; + FilterGroups = filterGroups.ToList(); + Projection = projection; + Aggregation = aggregation; + BackEndAggregation = backEndAggregation; + } + + /// Initializes a new instance of . + /// metric configuration identifier. + /// Telemetry type. + /// A collection of filters to scope metrics that UX needs. + /// Telemetry's metric dimension whose value is to be aggregated. Example values: Duration, Count(),... + /// Aggregation type. This is the aggregation done from everything within a single server. + /// Aggregation type. This Aggregation is done across the values for all the servers taken together. + /// Keeps track of any properties unknown to the library. + internal DerivedMetricInfo(string id, string telemetryType, IReadOnlyList filterGroups, string projection, AggregationType aggregation, AggregationType backEndAggregation, IDictionary serializedAdditionalRawData) + { + Id = id; + TelemetryType = telemetryType; + FilterGroups = filterGroups; + Projection = projection; + Aggregation = aggregation; + BackEndAggregation = backEndAggregation; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal DerivedMetricInfo() + { + } + + /// metric configuration identifier. + public string Id { get; } + /// Telemetry type. + public string TelemetryType { get; } + /// A collection of filters to scope metrics that UX needs. + public IReadOnlyList FilterGroups { get; } + /// Telemetry's metric dimension whose value is to be aggregated. Example values: Duration, Count(),... + public string Projection { get; } + /// Aggregation type. This is the aggregation done from everything within a single server. + public AggregationType Aggregation { get; } + /// Aggregation type. This Aggregation is done across the values for all the servers taken together. + public AggregationType BackEndAggregation { get; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/Docs/LiveMetricsClient.xml b/sdk/applicationinsights/LiveMetrics/src/Generated/Docs/LiveMetricsClient.xml new file mode 100644 index 000000000000..d20fe9db0cf7 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/Docs/LiveMetricsClient.xml @@ -0,0 +1,439 @@ + + + + + +This sample shows how to call IsSubscribedAsync. + response = await client.IsSubscribedAsync("4473b98e-c70d-4220-b57c-2984c2a0e5cd"); +]]> + + + +This sample shows how to call IsSubscribed. + response = client.IsSubscribed("4473b98e-c70d-4220-b57c-2984c2a0e5cd"); +]]> + + + +This sample shows how to call IsSubscribedAsync and parse the result. + + + + +This sample shows how to call IsSubscribed and parse the result. + + + + +This sample shows how to call PublishAsync. + response = await client.PublishAsync("4473b98e-c70d-4220-b57c-2984c2a0e5cd"); +]]> + + + +This sample shows how to call Publish. + response = client.Publish("4473b98e-c70d-4220-b57c-2984c2a0e5cd"); +]]> + + + +This sample shows how to call PublishAsync and parse the result. + + + + +This sample shows how to call Publish and parse the result. + + + + \ No newline at end of file diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentFilterConjunctionGroupInfo.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentFilterConjunctionGroupInfo.Serialization.cs new file mode 100644 index 000000000000..8dba2b0d193c --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentFilterConjunctionGroupInfo.Serialization.cs @@ -0,0 +1,151 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + public partial class DocumentFilterConjunctionGroupInfo : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(DocumentFilterConjunctionGroupInfo)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("TelemetryType"u8); + writer.WriteStringValue(TelemetryType.ToString()); + writer.WritePropertyName("Filters"u8); + writer.WriteObjectValue(Filters, options); + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + DocumentFilterConjunctionGroupInfo IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(DocumentFilterConjunctionGroupInfo)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeDocumentFilterConjunctionGroupInfo(document.RootElement, options); + } + + internal static DocumentFilterConjunctionGroupInfo DeserializeDocumentFilterConjunctionGroupInfo(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + TelemetryType telemetryType = default; + FilterConjunctionGroupInfo filters = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("TelemetryType"u8)) + { + telemetryType = new TelemetryType(property.Value.GetString()); + continue; + } + if (property.NameEquals("Filters"u8)) + { + filters = FilterConjunctionGroupInfo.DeserializeFilterConjunctionGroupInfo(property.Value, options); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new DocumentFilterConjunctionGroupInfo(telemetryType, filters, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(DocumentFilterConjunctionGroupInfo)} does not support writing '{options.Format}' format."); + } + } + + DocumentFilterConjunctionGroupInfo IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeDocumentFilterConjunctionGroupInfo(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(DocumentFilterConjunctionGroupInfo)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static DocumentFilterConjunctionGroupInfo FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeDocumentFilterConjunctionGroupInfo(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentFilterConjunctionGroupInfo.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentFilterConjunctionGroupInfo.cs new file mode 100644 index 000000000000..ab47aa5a5a85 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentFilterConjunctionGroupInfo.cs @@ -0,0 +1,81 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace LiveMetrics +{ + /// A collection of filters for a specific telemetry type. + public partial class DocumentFilterConjunctionGroupInfo + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// Telemetry type. + /// An array of filter groups. + /// is null. + internal DocumentFilterConjunctionGroupInfo(TelemetryType telemetryType, FilterConjunctionGroupInfo filters) + { + Argument.AssertNotNull(filters, nameof(filters)); + + TelemetryType = telemetryType; + Filters = filters; + } + + /// Initializes a new instance of . + /// Telemetry type. + /// An array of filter groups. + /// Keeps track of any properties unknown to the library. + internal DocumentFilterConjunctionGroupInfo(TelemetryType telemetryType, FilterConjunctionGroupInfo filters, IDictionary serializedAdditionalRawData) + { + TelemetryType = telemetryType; + Filters = filters; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal DocumentFilterConjunctionGroupInfo() + { + } + + /// Telemetry type. + public TelemetryType TelemetryType { get; } + /// An array of filter groups. + public FilterConjunctionGroupInfo Filters { get; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentIngress.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentIngress.Serialization.cs new file mode 100644 index 000000000000..2735f6e690c3 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentIngress.Serialization.cs @@ -0,0 +1,158 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + [PersistableModelProxy(typeof(UnknownDocumentIngress))] + public partial class DocumentIngress : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(DocumentIngress)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("DocumentType"u8); + writer.WriteStringValue(DocumentType.ToString()); + if (Optional.IsCollectionDefined(DocumentStreamIds)) + { + writer.WritePropertyName("DocumentStreamIds"u8); + writer.WriteStartArray(); + foreach (var item in DocumentStreamIds) + { + writer.WriteStringValue(item); + } + writer.WriteEndArray(); + } + if (Optional.IsCollectionDefined(Properties)) + { + writer.WritePropertyName("Properties"u8); + writer.WriteStartArray(); + foreach (var item in Properties) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + DocumentIngress IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(DocumentIngress)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeDocumentIngress(document.RootElement, options); + } + + internal static DocumentIngress DeserializeDocumentIngress(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("DocumentType", out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "Event": return Event.DeserializeEvent(element, options); + case "Exception": return Exception.DeserializeException(element, options); + case "RemoteDependency": return RemoteDependency.DeserializeRemoteDependency(element, options); + case "Request": return Request.DeserializeRequest(element, options); + case "Trace": return Trace.DeserializeTrace(element, options); + } + } + return UnknownDocumentIngress.DeserializeUnknownDocumentIngress(element, options); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(DocumentIngress)} does not support writing '{options.Format}' format."); + } + } + + DocumentIngress IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeDocumentIngress(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(DocumentIngress)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static DocumentIngress FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeDocumentIngress(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentIngress.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentIngress.cs new file mode 100644 index 000000000000..495a1ba03e02 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentIngress.cs @@ -0,0 +1,79 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace LiveMetrics +{ + /// + /// Base class of the specific document types. + /// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes. + /// The available derived classes include , , , and . + /// + public abstract partial class DocumentIngress + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private protected IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + protected DocumentIngress() + { + DocumentStreamIds = new ChangeTrackingList(); + Properties = new ChangeTrackingList(); + } + + /// Initializes a new instance of . + /// Telemetry type. Types not defined in enum will get replaced with a 'Unknown' type. + /// An array of document streaming ids. Each id identifies a flow of documents customized by UX customers. + /// Collection of custom properties. + /// Keeps track of any properties unknown to the library. + internal DocumentIngress(DocumentType documentType, IList documentStreamIds, IList properties, IDictionary serializedAdditionalRawData) + { + DocumentType = documentType; + DocumentStreamIds = documentStreamIds; + Properties = properties; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Telemetry type. Types not defined in enum will get replaced with a 'Unknown' type. + internal DocumentType DocumentType { get; set; } + /// An array of document streaming ids. Each id identifies a flow of documents customized by UX customers. + public IList DocumentStreamIds { get; } + /// Collection of custom properties. + public IList Properties { get; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentStreamInfo.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentStreamInfo.Serialization.cs new file mode 100644 index 000000000000..690d5fca8a33 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentStreamInfo.Serialization.cs @@ -0,0 +1,161 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + public partial class DocumentStreamInfo : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(DocumentStreamInfo)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("Id"u8); + writer.WriteStringValue(Id); + writer.WritePropertyName("DocumentFilterGroups"u8); + writer.WriteStartArray(); + foreach (var item in DocumentFilterGroups) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + DocumentStreamInfo IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(DocumentStreamInfo)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeDocumentStreamInfo(document.RootElement, options); + } + + internal static DocumentStreamInfo DeserializeDocumentStreamInfo(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string id = default; + IReadOnlyList documentFilterGroups = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("Id"u8)) + { + id = property.Value.GetString(); + continue; + } + if (property.NameEquals("DocumentFilterGroups"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(DocumentFilterConjunctionGroupInfo.DeserializeDocumentFilterConjunctionGroupInfo(item, options)); + } + documentFilterGroups = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new DocumentStreamInfo(id, documentFilterGroups, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(DocumentStreamInfo)} does not support writing '{options.Format}' format."); + } + } + + DocumentStreamInfo IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeDocumentStreamInfo(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(DocumentStreamInfo)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static DocumentStreamInfo FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeDocumentStreamInfo(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentStreamInfo.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentStreamInfo.cs new file mode 100644 index 000000000000..02101af6454e --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentStreamInfo.cs @@ -0,0 +1,83 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace LiveMetrics +{ + /// Configurations/filters set by UX to scope the document/telemetry it's interested in. + public partial class DocumentStreamInfo + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// Identifier of the document stream initiated by a UX. + /// Gets or sets an OR-connected collection of filter groups. + /// or is null. + internal DocumentStreamInfo(string id, IEnumerable documentFilterGroups) + { + Argument.AssertNotNull(id, nameof(id)); + Argument.AssertNotNull(documentFilterGroups, nameof(documentFilterGroups)); + + Id = id; + DocumentFilterGroups = documentFilterGroups.ToList(); + } + + /// Initializes a new instance of . + /// Identifier of the document stream initiated by a UX. + /// Gets or sets an OR-connected collection of filter groups. + /// Keeps track of any properties unknown to the library. + internal DocumentStreamInfo(string id, IReadOnlyList documentFilterGroups, IDictionary serializedAdditionalRawData) + { + Id = id; + DocumentFilterGroups = documentFilterGroups; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal DocumentStreamInfo() + { + } + + /// Identifier of the document stream initiated by a UX. + public string Id { get; } + /// Gets or sets an OR-connected collection of filter groups. + public IReadOnlyList DocumentFilterGroups { get; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentType.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentType.cs new file mode 100644 index 000000000000..d0eec283fbcf --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/DocumentType.cs @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace LiveMetrics +{ + /// Document type. + internal readonly partial struct DocumentType : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public DocumentType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string RequestValue = "Request"; + private const string RemoteDependencyValue = "RemoteDependency"; + private const string ExceptionValue = "Exception"; + private const string EventValue = "Event"; + private const string TraceValue = "Trace"; + private const string UnknownValue = "Unknown"; + + /// Represents a request telemetry type. + public static DocumentType Request { get; } = new DocumentType(RequestValue); + /// Represents a remote dependency telemetry type. + public static DocumentType RemoteDependency { get; } = new DocumentType(RemoteDependencyValue); + /// Represents an exception telemetry type. + public static DocumentType Exception { get; } = new DocumentType(ExceptionValue); + /// Represents an event telemetry type. + public static DocumentType Event { get; } = new DocumentType(EventValue); + /// Represents a trace telemetry type. + public static DocumentType Trace { get; } = new DocumentType(TraceValue); + /// Represents an unknown telemetry type. + public static DocumentType Unknown { get; } = new DocumentType(UnknownValue); + /// Determines if two values are the same. + public static bool operator ==(DocumentType left, DocumentType right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(DocumentType left, DocumentType right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator DocumentType(string value) => new DocumentType(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is DocumentType other && Equals(other); + /// + public bool Equals(DocumentType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + /// + public override string ToString() => _value; + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/Event.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/Event.Serialization.cs new file mode 100644 index 000000000000..90d354ff457a --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/Event.Serialization.cs @@ -0,0 +1,168 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + public partial class Event : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Event)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Name)) + { + writer.WritePropertyName("Name"u8); + writer.WriteStringValue(Name); + } + } + + Event IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Event)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeEvent(document.RootElement, options); + } + + internal static Event DeserializeEvent(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string name = default; + DocumentType documentType = default; + IList documentStreamIds = default; + IList properties = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("Name"u8)) + { + name = property.Value.GetString(); + continue; + } + if (property.NameEquals("DocumentType"u8)) + { + documentType = new DocumentType(property.Value.GetString()); + continue; + } + if (property.NameEquals("DocumentStreamIds"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + documentStreamIds = array; + continue; + } + if (property.NameEquals("Properties"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(KeyValuePairStringString.DeserializeKeyValuePairStringString(item, options)); + } + properties = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new Event(documentType, documentStreamIds ?? new ChangeTrackingList(), properties ?? new ChangeTrackingList(), serializedAdditionalRawData, name); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(Event)} does not support writing '{options.Format}' format."); + } + } + + Event IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeEvent(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(Event)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static new Event FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeEvent(document.RootElement); + } + + /// Convert into a . + internal override RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/Event.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/Event.cs new file mode 100644 index 000000000000..ac0ba2ec5b66 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/Event.cs @@ -0,0 +1,36 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace LiveMetrics +{ + /// Event document type. + public partial class Event : DocumentIngress + { + /// Initializes a new instance of . + public Event() + { + DocumentType = DocumentType.Event; + } + + /// Initializes a new instance of . + /// Telemetry type. Types not defined in enum will get replaced with a 'Unknown' type. + /// An array of document streaming ids. Each id identifies a flow of documents customized by UX customers. + /// Collection of custom properties. + /// Keeps track of any properties unknown to the library. + /// Event name. + internal Event(DocumentType documentType, IList documentStreamIds, IList properties, IDictionary serializedAdditionalRawData, string name) : base(documentType, documentStreamIds, properties, serializedAdditionalRawData) + { + Name = name; + } + + /// Event name. + public string Name { get; set; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/Exception.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/Exception.Serialization.cs new file mode 100644 index 000000000000..4b1aba040a74 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/Exception.Serialization.cs @@ -0,0 +1,185 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + public partial class Exception : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Exception)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(ExceptionType)) + { + writer.WritePropertyName("ExceptionType"u8); + writer.WriteStringValue(ExceptionType); + } + if (Optional.IsDefined(ExceptionMessage)) + { + writer.WritePropertyName("ExceptionMessage"u8); + writer.WriteStringValue(ExceptionMessage); + } + } + + Exception IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Exception)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeException(document.RootElement, options); + } + + internal static Exception DeserializeException(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string exceptionType = default; + string exceptionMessage = default; + DocumentType documentType = default; + IList documentStreamIds = default; + IList properties = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("ExceptionType"u8)) + { + exceptionType = property.Value.GetString(); + continue; + } + if (property.NameEquals("ExceptionMessage"u8)) + { + exceptionMessage = property.Value.GetString(); + continue; + } + if (property.NameEquals("DocumentType"u8)) + { + documentType = new DocumentType(property.Value.GetString()); + continue; + } + if (property.NameEquals("DocumentStreamIds"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + documentStreamIds = array; + continue; + } + if (property.NameEquals("Properties"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(KeyValuePairStringString.DeserializeKeyValuePairStringString(item, options)); + } + properties = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new Exception( + documentType, + documentStreamIds ?? new ChangeTrackingList(), + properties ?? new ChangeTrackingList(), + serializedAdditionalRawData, + exceptionType, + exceptionMessage); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(Exception)} does not support writing '{options.Format}' format."); + } + } + + Exception IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeException(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(Exception)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static new Exception FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeException(document.RootElement); + } + + /// Convert into a . + internal override RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/Exception.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/Exception.cs new file mode 100644 index 000000000000..33c36b88e5e0 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/Exception.cs @@ -0,0 +1,40 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace LiveMetrics +{ + /// Exception document type. + public partial class Exception : DocumentIngress + { + /// Initializes a new instance of . + public Exception() + { + DocumentType = DocumentType.Exception; + } + + /// Initializes a new instance of . + /// Telemetry type. Types not defined in enum will get replaced with a 'Unknown' type. + /// An array of document streaming ids. Each id identifies a flow of documents customized by UX customers. + /// Collection of custom properties. + /// Keeps track of any properties unknown to the library. + /// Exception type name. + /// Exception message. + internal Exception(DocumentType documentType, IList documentStreamIds, IList properties, IDictionary serializedAdditionalRawData, string exceptionType, string exceptionMessage) : base(documentType, documentStreamIds, properties, serializedAdditionalRawData) + { + ExceptionType = exceptionType; + ExceptionMessage = exceptionMessage; + } + + /// Exception type name. + public string ExceptionType { get; set; } + /// Exception message. + public string ExceptionMessage { get; set; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/FilterConjunctionGroupInfo.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/FilterConjunctionGroupInfo.Serialization.cs new file mode 100644 index 000000000000..92240918d0d1 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/FilterConjunctionGroupInfo.Serialization.cs @@ -0,0 +1,153 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + public partial class FilterConjunctionGroupInfo : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(FilterConjunctionGroupInfo)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("Filters"u8); + writer.WriteStartArray(); + foreach (var item in Filters) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + FilterConjunctionGroupInfo IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(FilterConjunctionGroupInfo)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeFilterConjunctionGroupInfo(document.RootElement, options); + } + + internal static FilterConjunctionGroupInfo DeserializeFilterConjunctionGroupInfo(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList filters = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("Filters"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(FilterInfo.DeserializeFilterInfo(item, options)); + } + filters = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new FilterConjunctionGroupInfo(filters, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(FilterConjunctionGroupInfo)} does not support writing '{options.Format}' format."); + } + } + + FilterConjunctionGroupInfo IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeFilterConjunctionGroupInfo(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(FilterConjunctionGroupInfo)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static FilterConjunctionGroupInfo FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeFilterConjunctionGroupInfo(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/FilterConjunctionGroupInfo.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/FilterConjunctionGroupInfo.cs new file mode 100644 index 000000000000..16ce6d4a1f18 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/FilterConjunctionGroupInfo.cs @@ -0,0 +1,76 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace LiveMetrics +{ + /// An AND-connected group of FilterInfo objects. + public partial class FilterConjunctionGroupInfo + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// An array of filters. + /// is null. + internal FilterConjunctionGroupInfo(IEnumerable filters) + { + Argument.AssertNotNull(filters, nameof(filters)); + + Filters = filters.ToList(); + } + + /// Initializes a new instance of . + /// An array of filters. + /// Keeps track of any properties unknown to the library. + internal FilterConjunctionGroupInfo(IReadOnlyList filters, IDictionary serializedAdditionalRawData) + { + Filters = filters; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal FilterConjunctionGroupInfo() + { + } + + /// An array of filters. + public IReadOnlyList Filters { get; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/FilterInfo.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/FilterInfo.Serialization.cs new file mode 100644 index 000000000000..fbf6a86762ca --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/FilterInfo.Serialization.cs @@ -0,0 +1,159 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + public partial class FilterInfo : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(FilterInfo)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("FieldName"u8); + writer.WriteStringValue(FieldName); + writer.WritePropertyName("Predicate"u8); + writer.WriteStringValue(Predicate.ToString()); + writer.WritePropertyName("Comparand"u8); + writer.WriteStringValue(Comparand); + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + FilterInfo IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(FilterInfo)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeFilterInfo(document.RootElement, options); + } + + internal static FilterInfo DeserializeFilterInfo(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string fieldName = default; + PredicateType predicate = default; + string comparand = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("FieldName"u8)) + { + fieldName = property.Value.GetString(); + continue; + } + if (property.NameEquals("Predicate"u8)) + { + predicate = new PredicateType(property.Value.GetString()); + continue; + } + if (property.NameEquals("Comparand"u8)) + { + comparand = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new FilterInfo(fieldName, predicate, comparand, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(FilterInfo)} does not support writing '{options.Format}' format."); + } + } + + FilterInfo IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeFilterInfo(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(FilterInfo)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static FilterInfo FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeFilterInfo(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/FilterInfo.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/FilterInfo.cs new file mode 100644 index 000000000000..227a405ba0cb --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/FilterInfo.cs @@ -0,0 +1,88 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace LiveMetrics +{ + /// A filter set on UX. + public partial class FilterInfo + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// dimension name of the filter. + /// Operator of the filter. + /// Comparand of the filter. + /// or is null. + internal FilterInfo(string fieldName, PredicateType predicate, string comparand) + { + Argument.AssertNotNull(fieldName, nameof(fieldName)); + Argument.AssertNotNull(comparand, nameof(comparand)); + + FieldName = fieldName; + Predicate = predicate; + Comparand = comparand; + } + + /// Initializes a new instance of . + /// dimension name of the filter. + /// Operator of the filter. + /// Comparand of the filter. + /// Keeps track of any properties unknown to the library. + internal FilterInfo(string fieldName, PredicateType predicate, string comparand, IDictionary serializedAdditionalRawData) + { + FieldName = fieldName; + Predicate = predicate; + Comparand = comparand; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal FilterInfo() + { + } + + /// dimension name of the filter. + public string FieldName { get; } + /// Operator of the filter. + public PredicateType Predicate { get; } + /// Comparand of the filter. + public string Comparand { get; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/Argument.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/Argument.cs new file mode 100644 index 000000000000..fd93d797ccdf --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/Argument.cs @@ -0,0 +1,129 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; + +namespace LiveMetrics +{ + internal static class Argument + { + public static void AssertNotNull(T value, string name) + { + if (value is null) + { + throw new ArgumentNullException(name); + } + } + + public static void AssertNotNull(T? value, string name) + where T : struct + { + if (!value.HasValue) + { + throw new ArgumentNullException(name); + } + } + + public static void AssertNotNullOrEmpty(IEnumerable value, string name) + { + if (value is null) + { + throw new ArgumentNullException(name); + } + if (value is ICollection collectionOfT && collectionOfT.Count == 0) + { + throw new ArgumentException("Value cannot be an empty collection.", name); + } + if (value is ICollection collection && collection.Count == 0) + { + throw new ArgumentException("Value cannot be an empty collection.", name); + } + using IEnumerator e = value.GetEnumerator(); + if (!e.MoveNext()) + { + throw new ArgumentException("Value cannot be an empty collection.", name); + } + } + + public static void AssertNotNullOrEmpty(string value, string name) + { + if (value is null) + { + throw new ArgumentNullException(name); + } + if (value.Length == 0) + { + throw new ArgumentException("Value cannot be an empty string.", name); + } + } + + public static void AssertNotNullOrWhiteSpace(string value, string name) + { + if (value is null) + { + throw new ArgumentNullException(name); + } + if (string.IsNullOrWhiteSpace(value)) + { + throw new ArgumentException("Value cannot be empty or contain only white-space characters.", name); + } + } + + public static void AssertNotDefault(ref T value, string name) + where T : struct, IEquatable + { + if (value.Equals(default)) + { + throw new ArgumentException("Value cannot be empty.", name); + } + } + + public static void AssertInRange(T value, T minimum, T maximum, string name) + where T : notnull, IComparable + { + if (minimum.CompareTo(value) > 0) + { + throw new ArgumentOutOfRangeException(name, "Value is less than the minimum allowed."); + } + if (maximum.CompareTo(value) < 0) + { + throw new ArgumentOutOfRangeException(name, "Value is greater than the maximum allowed."); + } + } + + public static void AssertEnumDefined(Type enumType, object value, string name) + { + if (!Enum.IsDefined(enumType, value)) + { + throw new ArgumentException($"Value not defined for {enumType.FullName}.", name); + } + } + + public static T CheckNotNull(T value, string name) + where T : class + { + AssertNotNull(value, name); + return value; + } + + public static string CheckNotNullOrEmpty(string value, string name) + { + AssertNotNullOrEmpty(value, name); + return value; + } + + public static void AssertNull(T value, string name, string message = null) + { + if (value != null) + { + throw new ArgumentException(message ?? "Value must be null.", name); + } + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/ChangeTrackingDictionary.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/ChangeTrackingDictionary.cs new file mode 100644 index 000000000000..adba2e33ac67 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/ChangeTrackingDictionary.cs @@ -0,0 +1,167 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; + +namespace LiveMetrics +{ + internal class ChangeTrackingDictionary : IDictionary, IReadOnlyDictionary where TKey : notnull + { + private IDictionary _innerDictionary; + + public ChangeTrackingDictionary() + { + } + + public ChangeTrackingDictionary(IDictionary dictionary) + { + if (dictionary == null) + { + return; + } + _innerDictionary = new Dictionary(dictionary); + } + + public ChangeTrackingDictionary(IReadOnlyDictionary dictionary) + { + if (dictionary == null) + { + return; + } + _innerDictionary = new Dictionary(); + foreach (var pair in dictionary) + { + _innerDictionary.Add(pair); + } + } + + public bool IsUndefined => _innerDictionary == null; + + public int Count => IsUndefined ? 0 : EnsureDictionary().Count; + + public bool IsReadOnly => IsUndefined ? false : EnsureDictionary().IsReadOnly; + + public ICollection Keys => IsUndefined ? Array.Empty() : EnsureDictionary().Keys; + + public ICollection Values => IsUndefined ? Array.Empty() : EnsureDictionary().Values; + + public TValue this[TKey key] + { + get + { + if (IsUndefined) + { + throw new KeyNotFoundException(nameof(key)); + } + return EnsureDictionary()[key]; + } + set + { + EnsureDictionary()[key] = value; + } + } + + IEnumerable IReadOnlyDictionary.Keys => Keys; + + IEnumerable IReadOnlyDictionary.Values => Values; + + public IEnumerator> GetEnumerator() + { + if (IsUndefined) + { + IEnumerator> enumerateEmpty() + { + yield break; + } + return enumerateEmpty(); + } + return EnsureDictionary().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + public void Add(KeyValuePair item) + { + EnsureDictionary().Add(item); + } + + public void Clear() + { + EnsureDictionary().Clear(); + } + + public bool Contains(KeyValuePair item) + { + if (IsUndefined) + { + return false; + } + return EnsureDictionary().Contains(item); + } + + public void CopyTo(KeyValuePair[] array, int index) + { + if (IsUndefined) + { + return; + } + EnsureDictionary().CopyTo(array, index); + } + + public bool Remove(KeyValuePair item) + { + if (IsUndefined) + { + return false; + } + return EnsureDictionary().Remove(item); + } + + public void Add(TKey key, TValue value) + { + EnsureDictionary().Add(key, value); + } + + public bool ContainsKey(TKey key) + { + if (IsUndefined) + { + return false; + } + return EnsureDictionary().ContainsKey(key); + } + + public bool Remove(TKey key) + { + if (IsUndefined) + { + return false; + } + return EnsureDictionary().Remove(key); + } + + public bool TryGetValue(TKey key, out TValue value) + { + if (IsUndefined) + { + value = default; + return false; + } + return EnsureDictionary().TryGetValue(key, out value); + } + + public IDictionary EnsureDictionary() + { + return _innerDictionary ??= new Dictionary(); + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/ChangeTrackingList.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/ChangeTrackingList.cs new file mode 100644 index 000000000000..d80288a80595 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/ChangeTrackingList.cs @@ -0,0 +1,153 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; + +namespace LiveMetrics +{ + internal class ChangeTrackingList : IList, IReadOnlyList + { + private IList _innerList; + + public ChangeTrackingList() + { + } + + public ChangeTrackingList(IList innerList) + { + if (innerList != null) + { + _innerList = innerList; + } + } + + public ChangeTrackingList(IReadOnlyList innerList) + { + if (innerList != null) + { + _innerList = innerList.ToList(); + } + } + + public bool IsUndefined => _innerList == null; + + public int Count => IsUndefined ? 0 : EnsureList().Count; + + public bool IsReadOnly => IsUndefined ? false : EnsureList().IsReadOnly; + + public T this[int index] + { + get + { + if (IsUndefined) + { + throw new ArgumentOutOfRangeException(nameof(index)); + } + return EnsureList()[index]; + } + set + { + if (IsUndefined) + { + throw new ArgumentOutOfRangeException(nameof(index)); + } + EnsureList()[index] = value; + } + } + + public void Reset() + { + _innerList = null; + } + + public IEnumerator GetEnumerator() + { + if (IsUndefined) + { + IEnumerator enumerateEmpty() + { + yield break; + } + return enumerateEmpty(); + } + return EnsureList().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + public void Add(T item) + { + EnsureList().Add(item); + } + + public void Clear() + { + EnsureList().Clear(); + } + + public bool Contains(T item) + { + if (IsUndefined) + { + return false; + } + return EnsureList().Contains(item); + } + + public void CopyTo(T[] array, int arrayIndex) + { + if (IsUndefined) + { + return; + } + EnsureList().CopyTo(array, arrayIndex); + } + + public bool Remove(T item) + { + if (IsUndefined) + { + return false; + } + return EnsureList().Remove(item); + } + + public int IndexOf(T item) + { + if (IsUndefined) + { + return -1; + } + return EnsureList().IndexOf(item); + } + + public void Insert(int index, T item) + { + EnsureList().Insert(index, item); + } + + public void RemoveAt(int index) + { + if (IsUndefined) + { + throw new ArgumentOutOfRangeException(nameof(index)); + } + EnsureList().RemoveAt(index); + } + + public IList EnsureList() + { + return _innerList ??= new List(); + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/ModelSerializationExtensions.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/ModelSerializationExtensions.cs new file mode 100644 index 000000000000..7c2e93f3723f --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/ModelSerializationExtensions.cs @@ -0,0 +1,399 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Diagnostics; +using System.Globalization; +using System.Text.Json; +using System.Xml; +using Azure.Core; + +namespace LiveMetrics +{ + internal static class ModelSerializationExtensions + { + internal static readonly JsonDocumentOptions JsonDocumentOptions = new JsonDocumentOptions { MaxDepth = 256 }; + internal static readonly ModelReaderWriterOptions WireOptions = new ModelReaderWriterOptions("W"); + + public static object GetObject(this JsonElement element) + { + switch (element.ValueKind) + { + case JsonValueKind.String: + return element.GetString(); + case JsonValueKind.Number: + if (element.TryGetInt32(out int intValue)) + { + return intValue; + } + if (element.TryGetInt64(out long longValue)) + { + return longValue; + } + return element.GetDouble(); + case JsonValueKind.True: + return true; + case JsonValueKind.False: + return false; + case JsonValueKind.Undefined: + case JsonValueKind.Null: + return null; + case JsonValueKind.Object: + var dictionary = new Dictionary(); + foreach (var jsonProperty in element.EnumerateObject()) + { + dictionary.Add(jsonProperty.Name, jsonProperty.Value.GetObject()); + } + return dictionary; + case JsonValueKind.Array: + var list = new List(); + foreach (var item in element.EnumerateArray()) + { + list.Add(item.GetObject()); + } + return list.ToArray(); + default: + throw new NotSupportedException($"Not supported value kind {element.ValueKind}"); + } + } + + public static byte[] GetBytesFromBase64(this JsonElement element, string format) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + + return format switch + { + "U" => TypeFormatters.FromBase64UrlString(element.GetRequiredString()), + "D" => element.GetBytesFromBase64(), + _ => throw new ArgumentException($"Format is not supported: '{format}'", nameof(format)) + }; + } + + public static DateTimeOffset GetDateTimeOffset(this JsonElement element, string format) => format switch + { + "U" when element.ValueKind == JsonValueKind.Number => DateTimeOffset.FromUnixTimeSeconds(element.GetInt64()), + _ => TypeFormatters.ParseDateTimeOffset(element.GetString(), format) + }; + + public static TimeSpan GetTimeSpan(this JsonElement element, string format) => TypeFormatters.ParseTimeSpan(element.GetString(), format); + + public static char GetChar(this JsonElement element) + { + if (element.ValueKind == JsonValueKind.String) + { + var text = element.GetString(); + if (text == null || text.Length != 1) + { + throw new NotSupportedException($"Cannot convert \"{text}\" to a char"); + } + return text[0]; + } + else + { + throw new NotSupportedException($"Cannot convert {element.ValueKind} to a char"); + } + } + + [Conditional("DEBUG")] + public static void ThrowNonNullablePropertyIsNull(this JsonProperty property) + { + throw new JsonException($"A property '{property.Name}' defined as non-nullable but received as null from the service. This exception only happens in DEBUG builds of the library and would be ignored in the release build"); + } + + public static string GetRequiredString(this JsonElement element) + { + var value = element.GetString(); + if (value == null) + { + throw new InvalidOperationException($"The requested operation requires an element of type 'String', but the target element has type '{element.ValueKind}'."); + } + return value; + } + + public static void WriteStringValue(this Utf8JsonWriter writer, DateTimeOffset value, string format) + { + writer.WriteStringValue(TypeFormatters.ToString(value, format)); + } + + public static void WriteStringValue(this Utf8JsonWriter writer, DateTime value, string format) + { + writer.WriteStringValue(TypeFormatters.ToString(value, format)); + } + + public static void WriteStringValue(this Utf8JsonWriter writer, TimeSpan value, string format) + { + writer.WriteStringValue(TypeFormatters.ToString(value, format)); + } + + public static void WriteStringValue(this Utf8JsonWriter writer, char value) + { + writer.WriteStringValue(value.ToString(CultureInfo.InvariantCulture)); + } + + public static void WriteBase64StringValue(this Utf8JsonWriter writer, byte[] value, string format) + { + if (value == null) + { + writer.WriteNullValue(); + return; + } + switch (format) + { + case "U": + writer.WriteStringValue(TypeFormatters.ToBase64UrlString(value)); + break; + case "D": + writer.WriteBase64StringValue(value); + break; + default: + throw new ArgumentException($"Format is not supported: '{format}'", nameof(format)); + } + } + + public static void WriteNumberValue(this Utf8JsonWriter writer, DateTimeOffset value, string format) + { + if (format != "U") + { + throw new ArgumentOutOfRangeException(nameof(format), "Only 'U' format is supported when writing a DateTimeOffset as a Number."); + } + writer.WriteNumberValue(value.ToUnixTimeSeconds()); + } + + public static void WriteObjectValue(this Utf8JsonWriter writer, T value, ModelReaderWriterOptions options = null) + { + switch (value) + { + case null: + writer.WriteNullValue(); + break; + case IJsonModel jsonModel: + jsonModel.Write(writer, options ?? WireOptions); + break; + case IUtf8JsonSerializable serializable: + serializable.Write(writer); + break; + case byte[] bytes: + writer.WriteBase64StringValue(bytes); + break; + case BinaryData bytes0: + writer.WriteBase64StringValue(bytes0); + break; + case JsonElement json: + json.WriteTo(writer); + break; + case int i: + writer.WriteNumberValue(i); + break; + case decimal d: + writer.WriteNumberValue(d); + break; + case double d0: + if (double.IsNaN(d0)) + { + writer.WriteStringValue("NaN"); + } + else + { + writer.WriteNumberValue(d0); + } + break; + case float f: + writer.WriteNumberValue(f); + break; + case long l: + writer.WriteNumberValue(l); + break; + case string s: + writer.WriteStringValue(s); + break; + case bool b: + writer.WriteBooleanValue(b); + break; + case Guid g: + writer.WriteStringValue(g); + break; + case DateTimeOffset dateTimeOffset: + writer.WriteStringValue(dateTimeOffset, "O"); + break; + case DateTime dateTime: + writer.WriteStringValue(dateTime, "O"); + break; + case IEnumerable> enumerable: + writer.WriteStartObject(); + foreach (var pair in enumerable) + { + writer.WritePropertyName(pair.Key); + writer.WriteObjectValue(pair.Value, options); + } + writer.WriteEndObject(); + break; + case IEnumerable objectEnumerable: + writer.WriteStartArray(); + foreach (var item in objectEnumerable) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + break; + case TimeSpan timeSpan: + writer.WriteStringValue(timeSpan, "P"); + break; + default: + throw new NotSupportedException($"Not supported type {value.GetType()}"); + } + } + + public static void WriteObjectValue(this Utf8JsonWriter writer, object value, ModelReaderWriterOptions options = null) + { + writer.WriteObjectValue(value, options); + } + + internal static class TypeFormatters + { + private const string RoundtripZFormat = "yyyy-MM-ddTHH:mm:ss.fffffffZ"; + public const string DefaultNumberFormat = "G"; + + public static string ToString(bool value) => value ? "true" : "false"; + + public static string ToString(DateTime value, string format) => value.Kind switch + { + DateTimeKind.Utc => ToString((DateTimeOffset)value, format), + _ => throw new NotSupportedException($"DateTime {value} has a Kind of {value.Kind}. Azure SDK requires it to be UTC. You can call DateTime.SpecifyKind to change Kind property value to DateTimeKind.Utc.") + }; + + public static string ToString(DateTimeOffset value, string format) => format switch + { + "D" => value.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture), + "U" => value.ToUnixTimeSeconds().ToString(CultureInfo.InvariantCulture), + "O" => value.ToUniversalTime().ToString(RoundtripZFormat, CultureInfo.InvariantCulture), + "o" => value.ToUniversalTime().ToString(RoundtripZFormat, CultureInfo.InvariantCulture), + "R" => value.ToString("r", CultureInfo.InvariantCulture), + _ => value.ToString(format, CultureInfo.InvariantCulture) + }; + + public static string ToString(TimeSpan value, string format) => format switch + { + "P" => XmlConvert.ToString(value), + _ => value.ToString(format, CultureInfo.InvariantCulture) + }; + + public static string ToString(byte[] value, string format) => format switch + { + "U" => ToBase64UrlString(value), + "D" => Convert.ToBase64String(value), + _ => throw new ArgumentException($"Format is not supported: '{format}'", nameof(format)) + }; + + public static string ToBase64UrlString(byte[] value) + { + int numWholeOrPartialInputBlocks = checked(value.Length + 2) / 3; + int size = checked(numWholeOrPartialInputBlocks * 4); + char[] output = new char[size]; + + int numBase64Chars = Convert.ToBase64CharArray(value, 0, value.Length, output, 0); + + int i = 0; + for (; i < numBase64Chars; i++) + { + char ch = output[i]; + if (ch == '+') + { + output[i] = '-'; + } + else + { + if (ch == '/') + { + output[i] = '_'; + } + else + { + if (ch == '=') + { + break; + } + } + } + } + + return new string(output, 0, i); + } + + public static byte[] FromBase64UrlString(string value) + { + int paddingCharsToAdd = (value.Length % 4) switch + { + 0 => 0, + 2 => 2, + 3 => 1, + _ => throw new InvalidOperationException("Malformed input") + }; + char[] output = new char[(value.Length + paddingCharsToAdd)]; + int i = 0; + for (; i < value.Length; i++) + { + char ch = value[i]; + if (ch == '-') + { + output[i] = '+'; + } + else + { + if (ch == '_') + { + output[i] = '/'; + } + else + { + output[i] = ch; + } + } + } + + for (; i < output.Length; i++) + { + output[i] = '='; + } + + return Convert.FromBase64CharArray(output, 0, output.Length); + } + + public static DateTimeOffset ParseDateTimeOffset(string value, string format) => format switch + { + "U" => DateTimeOffset.FromUnixTimeSeconds(long.Parse(value, CultureInfo.InvariantCulture)), + _ => DateTimeOffset.Parse(value, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal) + }; + + public static TimeSpan ParseTimeSpan(string value, string format) => format switch + { + "P" => XmlConvert.ToTimeSpan(value), + _ => TimeSpan.ParseExact(value, format, CultureInfo.InvariantCulture) + }; + + public static string ConvertToString(object value, string format = null) => value switch + { + null => "null", + string s => s, + bool b => ToString(b), + int or float or double or long or decimal => ((IFormattable)value).ToString(DefaultNumberFormat, CultureInfo.InvariantCulture), + byte[] b0 when format != null => ToString(b0, format), + IEnumerable s0 => string.Join(",", s0), + DateTimeOffset dateTime when format != null => ToString(dateTime, format), + TimeSpan timeSpan when format != null => ToString(timeSpan, format), + TimeSpan timeSpan0 => XmlConvert.ToString(timeSpan0), + Guid guid => guid.ToString(), + BinaryData binaryData => ConvertToString(binaryData.ToArray(), format), + _ => value.ToString() + }; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/Optional.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/Optional.cs new file mode 100644 index 000000000000..eeab5e028d1a --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/Optional.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Collections.Generic; +using System.Text.Json; + +namespace LiveMetrics +{ + internal static class Optional + { + public static bool IsCollectionDefined(IEnumerable collection) + { + return !(collection is ChangeTrackingList changeTrackingList && changeTrackingList.IsUndefined); + } + + public static bool IsCollectionDefined(IDictionary collection) + { + return !(collection is ChangeTrackingDictionary changeTrackingDictionary && changeTrackingDictionary.IsUndefined); + } + + public static bool IsCollectionDefined(IReadOnlyDictionary collection) + { + return !(collection is ChangeTrackingDictionary changeTrackingDictionary && changeTrackingDictionary.IsUndefined); + } + + public static bool IsDefined(T? value) + where T : struct + { + return value.HasValue; + } + + public static bool IsDefined(object value) + { + return value != null; + } + + public static bool IsDefined(JsonElement value) + { + return value.ValueKind != JsonValueKind.Undefined; + } + + public static bool IsDefined(string value) + { + return value != null; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/RequestContentHelper.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/RequestContentHelper.cs new file mode 100644 index 000000000000..47773ff2f03c --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/RequestContentHelper.cs @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace LiveMetrics +{ + internal static class RequestContentHelper + { + public static RequestContent FromEnumerable(IEnumerable enumerable) + where T : notnull + { + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteStartArray(); + foreach (var item in enumerable) + { + content.JsonWriter.WriteObjectValue(item, ModelSerializationExtensions.WireOptions); + } + content.JsonWriter.WriteEndArray(); + + return content; + } + + public static RequestContent FromEnumerable(IEnumerable enumerable) + { + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteStartArray(); + foreach (var item in enumerable) + { + if (item == null) + { + content.JsonWriter.WriteNullValue(); + } + else + { +#if NET6_0_OR_GREATER + content.JsonWriter.WriteRawValue(item); +#else + using (JsonDocument document = JsonDocument.Parse(item, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(content.JsonWriter, document.RootElement); + } +#endif + } + } + content.JsonWriter.WriteEndArray(); + + return content; + } + + public static RequestContent FromEnumerable(ReadOnlySpan span) + where T : notnull + { + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteStartArray(); + for (int i = 0; i < span.Length; i++) + { + content.JsonWriter.WriteObjectValue(span[i], ModelSerializationExtensions.WireOptions); + } + content.JsonWriter.WriteEndArray(); + + return content; + } + + public static RequestContent FromDictionary(IDictionary dictionary) + where TValue : notnull + { + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteStartObject(); + foreach (var item in dictionary) + { + content.JsonWriter.WritePropertyName(item.Key); + content.JsonWriter.WriteObjectValue(item.Value, ModelSerializationExtensions.WireOptions); + } + content.JsonWriter.WriteEndObject(); + + return content; + } + + public static RequestContent FromDictionary(IDictionary dictionary) + { + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteStartObject(); + foreach (var item in dictionary) + { + content.JsonWriter.WritePropertyName(item.Key); + if (item.Value == null) + { + content.JsonWriter.WriteNullValue(); + } + else + { +#if NET6_0_OR_GREATER + content.JsonWriter.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(content.JsonWriter, document.RootElement); + } +#endif + } + } + content.JsonWriter.WriteEndObject(); + + return content; + } + + public static RequestContent FromObject(object value) + { + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(value, ModelSerializationExtensions.WireOptions); + return content; + } + + public static RequestContent FromObject(BinaryData value) + { + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); +#if NET6_0_OR_GREATER + content.JsonWriter.WriteRawValue(value); +#else + using (JsonDocument document = JsonDocument.Parse(value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(content.JsonWriter, document.RootElement); + } +#endif + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/Utf8JsonRequestContent.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/Utf8JsonRequestContent.cs new file mode 100644 index 000000000000..0d748623b16d --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/Internal/Utf8JsonRequestContent.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.IO; +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; + +namespace LiveMetrics +{ + internal class Utf8JsonRequestContent : RequestContent + { + private readonly MemoryStream _stream; + private readonly RequestContent _content; + + public Utf8JsonRequestContent() + { + _stream = new MemoryStream(); + _content = Create(_stream); + JsonWriter = new Utf8JsonWriter(_stream); + } + + public Utf8JsonWriter JsonWriter { get; } + + public override async Task WriteToAsync(Stream stream, CancellationToken cancellationToken = default) + { + await JsonWriter.FlushAsync().ConfigureAwait(false); + await _content.WriteToAsync(stream, cancellationToken).ConfigureAwait(false); + } + + public override void WriteTo(Stream stream, CancellationToken cancellationToken = default) + { + JsonWriter.Flush(); + _content.WriteTo(stream, cancellationToken); + } + + public override bool TryComputeLength(out long length) + { + length = JsonWriter.BytesCommitted + JsonWriter.BytesPending; + return true; + } + + public override void Dispose() + { + JsonWriter.Dispose(); + _content.Dispose(); + _stream.Dispose(); + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/KeyValuePairStringString.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/KeyValuePairStringString.Serialization.cs new file mode 100644 index 000000000000..50bb490722bf --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/KeyValuePairStringString.Serialization.cs @@ -0,0 +1,151 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + public partial class KeyValuePairStringString : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(KeyValuePairStringString)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("key"u8); + writer.WriteStringValue(Key); + writer.WritePropertyName("value"u8); + writer.WriteStringValue(Value); + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + KeyValuePairStringString IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(KeyValuePairStringString)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeKeyValuePairStringString(document.RootElement, options); + } + + internal static KeyValuePairStringString DeserializeKeyValuePairStringString(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string key = default; + string value = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("key"u8)) + { + key = property.Value.GetString(); + continue; + } + if (property.NameEquals("value"u8)) + { + value = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new KeyValuePairStringString(key, value, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(KeyValuePairStringString)} does not support writing '{options.Format}' format."); + } + } + + KeyValuePairStringString IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeKeyValuePairStringString(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(KeyValuePairStringString)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static KeyValuePairStringString FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeKeyValuePairStringString(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/KeyValuePairStringString.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/KeyValuePairStringString.cs new file mode 100644 index 000000000000..ebe35b0f0370 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/KeyValuePairStringString.cs @@ -0,0 +1,82 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace LiveMetrics +{ + /// Key-value pair of string and string. + public partial class KeyValuePairStringString + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// Key of the key-value pair. + /// Value of the key-value pair. + /// or is null. + public KeyValuePairStringString(string key, string value) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + Key = key; + Value = value; + } + + /// Initializes a new instance of . + /// Key of the key-value pair. + /// Value of the key-value pair. + /// Keeps track of any properties unknown to the library. + internal KeyValuePairStringString(string key, string value, IDictionary serializedAdditionalRawData) + { + Key = key; + Value = value; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal KeyValuePairStringString() + { + } + + /// Key of the key-value pair. + public string Key { get; } + /// Value of the key-value pair. + public string Value { get; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/LiveMetricsClient.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/LiveMetricsClient.cs new file mode 100644 index 000000000000..48b465ab2013 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/LiveMetricsClient.cs @@ -0,0 +1,408 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace LiveMetrics +{ + // Data plane generated client. + /// Live Metrics REST APIs. + public partial class LiveMetricsClient + { + private static readonly string[] AuthorizationScopes = new string[] { "https://monitor.azure.com/.default" }; + private readonly TokenCredential _tokenCredential; + private readonly HttpPipeline _pipeline; + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// The ClientDiagnostics is used to provide tracing support for the client library. + internal ClientDiagnostics ClientDiagnostics { get; } + + /// The HTTP pipeline for sending and receiving REST requests and responses. + public virtual HttpPipeline Pipeline => _pipeline; + + /// Initializes a new instance of LiveMetricsClient for mocking. + protected LiveMetricsClient() + { + } + + /// Initializes a new instance of LiveMetricsClient. + /// A credential used to authenticate to an Azure Service. + /// is null. + public LiveMetricsClient(TokenCredential credential) : this(new Uri("https://global.livediagnostics.monitor.azure.com"), credential, new LiveMetricsClientOptions()) + { + } + + /// Initializes a new instance of LiveMetricsClient. + /// The endpoint of the Live Metrics service. + /// A credential used to authenticate to an Azure Service. + /// The options for configuring the client. + /// or is null. + public LiveMetricsClient(Uri endpoint, TokenCredential credential, LiveMetricsClientOptions options) + { + Argument.AssertNotNull(endpoint, nameof(endpoint)); + Argument.AssertNotNull(credential, nameof(credential)); + options ??= new LiveMetricsClientOptions(); + + ClientDiagnostics = new ClientDiagnostics(options, true); + _tokenCredential = credential; + _pipeline = HttpPipelineBuilder.Build(options, Array.Empty(), new HttpPipelinePolicy[] { new BearerTokenAuthenticationPolicy(_tokenCredential, AuthorizationScopes) }, new ResponseClassifier()); + _endpoint = endpoint; + _apiVersion = options.Version; + } + + /// Determine whether there is any subscription to the metrics and documents. + /// The instrumentation key of the target Application Insights component for which the client checks whether there's any subscription to it. + /// Data contract between Application Insights client SDK and Live Metrics. /QuickPulseService.svc/ping uses this as a backup source of machine name, instance name and invariant version. + /// Timestamp when the client transmits the metrics and documents to Live Metrics. A 8-byte long type of ticks. + /// Computer name where Application Insights SDK lives. Live Metrics uses machine name with instance name as a backup. + /// Service instance name where Application Insights SDK lives. Live Metrics uses machine name with instance name as a backup. + /// Identifies an Application Insights SDK as trusted agent to report metrics and documents. + /// Cloud role name of the service. + /// Version/generation of the data contract (MonitoringDataPoint) between the client and Live Metrics. + /// An encoded string that indicates whether the collection configuration is changed. + /// The cancellation token to use. + /// is null. + /// + public virtual async Task> IsSubscribedAsync(string ikey, MonitoringDataPoint monitoringDataPoint = null, long? transmissionTime = null, string machineName = null, string instanceName = null, string streamId = null, string roleName = null, string invariantVersion = null, ETag? configurationEtag = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(ikey, nameof(ikey)); + + using RequestContent content = monitoringDataPoint?.ToRequestContent(); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await IsSubscribedAsync(ikey, content, transmissionTime, machineName, instanceName, streamId, roleName, invariantVersion, configurationEtag, context).ConfigureAwait(false); + return Response.FromValue(CollectionConfigurationInfo.FromResponse(response), response); + } + + /// Determine whether there is any subscription to the metrics and documents. + /// The instrumentation key of the target Application Insights component for which the client checks whether there's any subscription to it. + /// Data contract between Application Insights client SDK and Live Metrics. /QuickPulseService.svc/ping uses this as a backup source of machine name, instance name and invariant version. + /// Timestamp when the client transmits the metrics and documents to Live Metrics. A 8-byte long type of ticks. + /// Computer name where Application Insights SDK lives. Live Metrics uses machine name with instance name as a backup. + /// Service instance name where Application Insights SDK lives. Live Metrics uses machine name with instance name as a backup. + /// Identifies an Application Insights SDK as trusted agent to report metrics and documents. + /// Cloud role name of the service. + /// Version/generation of the data contract (MonitoringDataPoint) between the client and Live Metrics. + /// An encoded string that indicates whether the collection configuration is changed. + /// The cancellation token to use. + /// is null. + /// + public virtual Response IsSubscribed(string ikey, MonitoringDataPoint monitoringDataPoint = null, long? transmissionTime = null, string machineName = null, string instanceName = null, string streamId = null, string roleName = null, string invariantVersion = null, ETag? configurationEtag = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(ikey, nameof(ikey)); + + using RequestContent content = monitoringDataPoint?.ToRequestContent(); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = IsSubscribed(ikey, content, transmissionTime, machineName, instanceName, streamId, roleName, invariantVersion, configurationEtag, context); + return Response.FromValue(CollectionConfigurationInfo.FromResponse(response), response); + } + + /// + /// [Protocol Method] Determine whether there is any subscription to the metrics and documents. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// Please try the simpler convenience overload with strongly typed models first. + /// + /// + /// + /// + /// The instrumentation key of the target Application Insights component for which the client checks whether there's any subscription to it. + /// The content to send as the body of the request. + /// Timestamp when the client transmits the metrics and documents to Live Metrics. A 8-byte long type of ticks. + /// Computer name where Application Insights SDK lives. Live Metrics uses machine name with instance name as a backup. + /// Service instance name where Application Insights SDK lives. Live Metrics uses machine name with instance name as a backup. + /// Identifies an Application Insights SDK as trusted agent to report metrics and documents. + /// Cloud role name of the service. + /// Version/generation of the data contract (MonitoringDataPoint) between the client and Live Metrics. + /// An encoded string that indicates whether the collection configuration is changed. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// is null. + /// Service returned a non-success status code. + /// The response returned from the service. + /// + public virtual async Task IsSubscribedAsync(string ikey, RequestContent content, long? transmissionTime = null, string machineName = null, string instanceName = null, string streamId = null, string roleName = null, string invariantVersion = null, ETag? configurationEtag = null, RequestContext context = null) + { + Argument.AssertNotNull(ikey, nameof(ikey)); + + using var scope = ClientDiagnostics.CreateScope("LiveMetricsClient.IsSubscribed"); + scope.Start(); + try + { + using HttpMessage message = CreateIsSubscribedRequest(ikey, content, transmissionTime, machineName, instanceName, streamId, roleName, invariantVersion, configurationEtag, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (System.Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Determine whether there is any subscription to the metrics and documents. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// Please try the simpler convenience overload with strongly typed models first. + /// + /// + /// + /// + /// The instrumentation key of the target Application Insights component for which the client checks whether there's any subscription to it. + /// The content to send as the body of the request. + /// Timestamp when the client transmits the metrics and documents to Live Metrics. A 8-byte long type of ticks. + /// Computer name where Application Insights SDK lives. Live Metrics uses machine name with instance name as a backup. + /// Service instance name where Application Insights SDK lives. Live Metrics uses machine name with instance name as a backup. + /// Identifies an Application Insights SDK as trusted agent to report metrics and documents. + /// Cloud role name of the service. + /// Version/generation of the data contract (MonitoringDataPoint) between the client and Live Metrics. + /// An encoded string that indicates whether the collection configuration is changed. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// is null. + /// Service returned a non-success status code. + /// The response returned from the service. + /// + public virtual Response IsSubscribed(string ikey, RequestContent content, long? transmissionTime = null, string machineName = null, string instanceName = null, string streamId = null, string roleName = null, string invariantVersion = null, ETag? configurationEtag = null, RequestContext context = null) + { + Argument.AssertNotNull(ikey, nameof(ikey)); + + using var scope = ClientDiagnostics.CreateScope("LiveMetricsClient.IsSubscribed"); + scope.Start(); + try + { + using HttpMessage message = CreateIsSubscribedRequest(ikey, content, transmissionTime, machineName, instanceName, streamId, roleName, invariantVersion, configurationEtag, context); + return _pipeline.ProcessMessage(message, context); + } + catch (System.Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Publish live metrics to the Live Metrics service when there is an active subscription to the metrics. + /// The instrumentation key of the target Application Insights component for which the client checks whether there's any subscription to it. + /// Data contract between the client and Live Metrics. /QuickPulseService.svc/ping uses this as a backup source of machine name, instance name and invariant version. + /// An encoded string that indicates whether the collection configuration is changed. + /// Timestamp when the client transmits the metrics and documents to Live Metrics. A 8-byte long type of ticks. + /// The cancellation token to use. + /// is null. + /// + public virtual async Task> PublishAsync(string ikey, IEnumerable monitoringDataPoints = null, ETag? configurationEtag = null, long? transmissionTime = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(ikey, nameof(ikey)); + + using RequestContent content = monitoringDataPoints != null ? RequestContentHelper.FromEnumerable(monitoringDataPoints) : null; + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await PublishAsync(ikey, content, configurationEtag, transmissionTime, context).ConfigureAwait(false); + return Response.FromValue(CollectionConfigurationInfo.FromResponse(response), response); + } + + /// Publish live metrics to the Live Metrics service when there is an active subscription to the metrics. + /// The instrumentation key of the target Application Insights component for which the client checks whether there's any subscription to it. + /// Data contract between the client and Live Metrics. /QuickPulseService.svc/ping uses this as a backup source of machine name, instance name and invariant version. + /// An encoded string that indicates whether the collection configuration is changed. + /// Timestamp when the client transmits the metrics and documents to Live Metrics. A 8-byte long type of ticks. + /// The cancellation token to use. + /// is null. + /// + public virtual Response Publish(string ikey, IEnumerable monitoringDataPoints = null, ETag? configurationEtag = null, long? transmissionTime = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(ikey, nameof(ikey)); + + using RequestContent content = monitoringDataPoints != null ? RequestContentHelper.FromEnumerable(monitoringDataPoints) : null; + RequestContext context = FromCancellationToken(cancellationToken); + Response response = Publish(ikey, content, configurationEtag, transmissionTime, context); + return Response.FromValue(CollectionConfigurationInfo.FromResponse(response), response); + } + + /// + /// [Protocol Method] Publish live metrics to the Live Metrics service when there is an active subscription to the metrics. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// Please try the simpler convenience overload with strongly typed models first. + /// + /// + /// + /// + /// The instrumentation key of the target Application Insights component for which the client checks whether there's any subscription to it. + /// The content to send as the body of the request. + /// An encoded string that indicates whether the collection configuration is changed. + /// Timestamp when the client transmits the metrics and documents to Live Metrics. A 8-byte long type of ticks. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// is null. + /// Service returned a non-success status code. + /// The response returned from the service. + /// + public virtual async Task PublishAsync(string ikey, RequestContent content, ETag? configurationEtag = null, long? transmissionTime = null, RequestContext context = null) + { + Argument.AssertNotNull(ikey, nameof(ikey)); + + using var scope = ClientDiagnostics.CreateScope("LiveMetricsClient.Publish"); + scope.Start(); + try + { + using HttpMessage message = CreatePublishRequest(ikey, content, configurationEtag, transmissionTime, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (System.Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Publish live metrics to the Live Metrics service when there is an active subscription to the metrics. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// Please try the simpler convenience overload with strongly typed models first. + /// + /// + /// + /// + /// The instrumentation key of the target Application Insights component for which the client checks whether there's any subscription to it. + /// The content to send as the body of the request. + /// An encoded string that indicates whether the collection configuration is changed. + /// Timestamp when the client transmits the metrics and documents to Live Metrics. A 8-byte long type of ticks. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// is null. + /// Service returned a non-success status code. + /// The response returned from the service. + /// + public virtual Response Publish(string ikey, RequestContent content, ETag? configurationEtag = null, long? transmissionTime = null, RequestContext context = null) + { + Argument.AssertNotNull(ikey, nameof(ikey)); + + using var scope = ClientDiagnostics.CreateScope("LiveMetricsClient.Publish"); + scope.Start(); + try + { + using HttpMessage message = CreatePublishRequest(ikey, content, configurationEtag, transmissionTime, context); + return _pipeline.ProcessMessage(message, context); + } + catch (System.Exception e) + { + scope.Failed(e); + throw; + } + } + + internal HttpMessage CreateIsSubscribedRequest(string ikey, RequestContent content, long? transmissionTime, string machineName, string instanceName, string streamId, string roleName, string invariantVersion, ETag? configurationEtag, RequestContext context) + { + var message = _pipeline.CreateMessage(context, ResponseClassifier200); + var request = message.Request; + request.Method = RequestMethod.Post; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/QuickPulseService.svc/ping", false); + uri.AppendQuery("ikey", ikey, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + if (transmissionTime != null) + { + request.Headers.Add("x-ms-qps-transmission-time", transmissionTime.Value); + } + if (machineName != null) + { + request.Headers.Add("x-ms-qps-machine-name", machineName); + } + if (instanceName != null) + { + request.Headers.Add("x-ms-qps-instance-name", instanceName); + } + if (streamId != null) + { + request.Headers.Add("x-ms-qps-stream-id", streamId); + } + if (roleName != null) + { + request.Headers.Add("x-ms-qps-role-name", roleName); + } + if (invariantVersion != null) + { + request.Headers.Add("x-ms-qps-invariant-version", invariantVersion); + } + if (configurationEtag != null) + { + request.Headers.Add("x-ms-qps-configuration-etag", configurationEtag.Value); + } + request.Headers.Add("Content-Type", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreatePublishRequest(string ikey, RequestContent content, ETag? configurationEtag, long? transmissionTime, RequestContext context) + { + var message = _pipeline.CreateMessage(context, ResponseClassifier200); + var request = message.Request; + request.Method = RequestMethod.Post; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/QuickPulseService.svc/post", false); + uri.AppendQuery("ikey", ikey, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + if (configurationEtag != null) + { + request.Headers.Add("x-ms-qps-configuration-etag", configurationEtag.Value); + } + if (transmissionTime != null) + { + request.Headers.Add("x-ms-qps-transmission-time", transmissionTime.Value); + } + request.Headers.Add("Content-Type", "application/json"); + request.Content = content; + return message; + } + + private static RequestContext DefaultRequestContext = new RequestContext(); + internal static RequestContext FromCancellationToken(CancellationToken cancellationToken = default) + { + if (!cancellationToken.CanBeCanceled) + { + return DefaultRequestContext; + } + + return new RequestContext() { CancellationToken = cancellationToken }; + } + + private static ResponseClassifier _responseClassifier200; + private static ResponseClassifier ResponseClassifier200 => _responseClassifier200 ??= new StatusCodeClassifier(stackalloc ushort[] { 200 }); + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/LiveMetricsClientBuilderExtensions.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/LiveMetricsClientBuilderExtensions.cs new file mode 100644 index 000000000000..8ecb9e953fd2 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/LiveMetricsClientBuilderExtensions.cs @@ -0,0 +1,35 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure.Core.Extensions; +using LiveMetrics; + +namespace Microsoft.Extensions.Azure +{ + /// Extension methods to add to client builder. + public static partial class LiveMetricsClientBuilderExtensions + { + /// Registers a instance. + /// The builder to register with. + /// The endpoint of the Live Metrics service. + public static IAzureClientBuilder AddLiveMetricsClient(this TBuilder builder, Uri endpoint) + where TBuilder : IAzureClientFactoryBuilderWithCredential + { + return builder.RegisterClientFactory((options, cred) => new LiveMetricsClient(endpoint, cred, options)); + } + + /// Registers a instance. + /// The builder to register with. + /// The configuration values. + public static IAzureClientBuilder AddLiveMetricsClient(this TBuilder builder, TConfiguration configuration) + where TBuilder : IAzureClientFactoryBuilderWithConfiguration + { + return builder.RegisterClientFactory(configuration); + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/LiveMetricsClientOptions.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/LiveMetricsClientOptions.cs new file mode 100644 index 000000000000..570f16b4a1b1 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/LiveMetricsClientOptions.cs @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure.Core; + +namespace LiveMetrics +{ + /// Client options for LiveMetricsClient. + public partial class LiveMetricsClientOptions : ClientOptions + { + private const ServiceVersion LatestVersion = ServiceVersion.V2024_04_01_Preview; + + /// The version of the service to use. + public enum ServiceVersion + { + /// Service version "2024-04-01-preview". + V2024_04_01_Preview = 1, + } + + internal string Version { get; } + + /// Initializes new instance of LiveMetricsClientOptions. + public LiveMetricsClientOptions(ServiceVersion version = LatestVersion) + { + Version = version switch + { + ServiceVersion.V2024_04_01_Preview => "2024-04-01-preview", + _ => throw new NotSupportedException() + }; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/LiveMetricsModelFactory.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/LiveMetricsModelFactory.cs new file mode 100644 index 000000000000..512a865451bb --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/LiveMetricsModelFactory.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace LiveMetrics +{ + /// Model factory for models. + public static partial class LiveMetricsModelFactory + { + /// Initializes a new instance of . + /// Application Insights SDK version. + /// Version/generation of the data contract (MonitoringDataPoint) between SDK and Live Metrics. + /// Service instance name where Application Insights SDK lives. + /// Service role name. + /// Computer name where Application Insights SDK lives. + /// Identifies an Application Insights SDK as a trusted agent to report metrics and documents. + /// Data point generation timestamp. + /// Timestamp when the client transmits the metrics and documents to Live Metrics. + /// True if the current application is an Azure Web App. + /// True if performance counters collection is supported. + /// An array of metric data points. + /// + /// An array of documents of a specific type {Request}, {RemoteDependency}, {Exception}, {Event}, or {Trace} + /// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes. + /// The available derived classes include , , , and . + /// + /// An array of top cpu consumption data point. + /// An array of error while SDK parses and applies the {CollectionConfigurationInfo} provided by Live Metrics. + /// A new instance for mocking. + public static MonitoringDataPoint MonitoringDataPoint(string version = null, int invariantVersion = default, string instance = null, string roleName = null, string machineName = null, string streamId = null, DateTimeOffset? timestamp = null, DateTimeOffset? transmissionTime = null, bool isWebApp = default, bool performanceCollectionSupported = default, IEnumerable metrics = null, IEnumerable documents = null, IEnumerable topCpuProcesses = null, IEnumerable collectionConfigurationErrors = null) + { + metrics ??= new List(); + documents ??= new List(); + topCpuProcesses ??= new List(); + collectionConfigurationErrors ??= new List(); + + return new MonitoringDataPoint( + version, + invariantVersion, + instance, + roleName, + machineName, + streamId, + timestamp, + transmissionTime, + isWebApp, + performanceCollectionSupported, + metrics?.ToList(), + documents?.ToList(), + topCpuProcesses?.ToList(), + collectionConfigurationErrors?.ToList(), + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// An encoded string that indicates whether the collection configuration is changed. + /// An array of metric configuration info. + /// An array of document stream configuration info. + /// Controls document quotas to be sent to Live Metrics. + /// A new instance for mocking. + public static CollectionConfigurationInfo CollectionConfigurationInfo(string eTag = null, IEnumerable metrics = null, IEnumerable documentStreams = null, QuotaConfigurationInfo quotaInfo = null) + { + metrics ??= new List(); + documentStreams ??= new List(); + + return new CollectionConfigurationInfo(eTag, metrics?.ToList(), documentStreams?.ToList(), quotaInfo, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// metric configuration identifier. + /// Telemetry type. + /// A collection of filters to scope metrics that UX needs. + /// Telemetry's metric dimension whose value is to be aggregated. Example values: Duration, Count(),... + /// Aggregation type. This is the aggregation done from everything within a single server. + /// Aggregation type. This Aggregation is done across the values for all the servers taken together. + /// A new instance for mocking. + public static DerivedMetricInfo DerivedMetricInfo(string id = null, string telemetryType = null, IEnumerable filterGroups = null, string projection = null, AggregationType aggregation = default, AggregationType backEndAggregation = default) + { + filterGroups ??= new List(); + + return new DerivedMetricInfo( + id, + telemetryType, + filterGroups?.ToList(), + projection, + aggregation, + backEndAggregation, + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// An array of filters. + /// A new instance for mocking. + public static FilterConjunctionGroupInfo FilterConjunctionGroupInfo(IEnumerable filters = null) + { + filters ??= new List(); + + return new FilterConjunctionGroupInfo(filters?.ToList(), serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// dimension name of the filter. + /// Operator of the filter. + /// Comparand of the filter. + /// A new instance for mocking. + public static FilterInfo FilterInfo(string fieldName = null, PredicateType predicate = default, string comparand = null) + { + return new FilterInfo(fieldName, predicate, comparand, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// Identifier of the document stream initiated by a UX. + /// Gets or sets an OR-connected collection of filter groups. + /// A new instance for mocking. + public static DocumentStreamInfo DocumentStreamInfo(string id = null, IEnumerable documentFilterGroups = null) + { + documentFilterGroups ??= new List(); + + return new DocumentStreamInfo(id, documentFilterGroups?.ToList(), serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// Telemetry type. + /// An array of filter groups. + /// A new instance for mocking. + public static DocumentFilterConjunctionGroupInfo DocumentFilterConjunctionGroupInfo(TelemetryType telemetryType = default, FilterConjunctionGroupInfo filters = null) + { + return new DocumentFilterConjunctionGroupInfo(telemetryType, filters, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// Initial quota. + /// Max quota. + /// Quota accrual rate per second. + /// A new instance for mocking. + public static QuotaConfigurationInfo QuotaConfigurationInfo(float? initialQuota = null, float maxQuota = default, float quotaAccrualRatePerSec = default) + { + return new QuotaConfigurationInfo(initialQuota, maxQuota, quotaAccrualRatePerSec, serializedAdditionalRawData: null); + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/MetricPoint.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/MetricPoint.Serialization.cs new file mode 100644 index 000000000000..69f7df78a2e8 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/MetricPoint.Serialization.cs @@ -0,0 +1,159 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + public partial class MetricPoint : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(MetricPoint)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("Name"u8); + writer.WriteStringValue(Name); + writer.WritePropertyName("Value"u8); + writer.WriteNumberValue(Value); + writer.WritePropertyName("Weight"u8); + writer.WriteNumberValue(Weight); + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + MetricPoint IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(MetricPoint)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMetricPoint(document.RootElement, options); + } + + internal static MetricPoint DeserializeMetricPoint(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string name = default; + double value = default; + int weight = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("Name"u8)) + { + name = property.Value.GetString(); + continue; + } + if (property.NameEquals("Value"u8)) + { + value = property.Value.GetDouble(); + continue; + } + if (property.NameEquals("Weight"u8)) + { + weight = property.Value.GetInt32(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new MetricPoint(name, value, weight, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(MetricPoint)} does not support writing '{options.Format}' format."); + } + } + + MetricPoint IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeMetricPoint(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MetricPoint)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static MetricPoint FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeMetricPoint(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/MetricPoint.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/MetricPoint.cs new file mode 100644 index 000000000000..8c523231a237 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/MetricPoint.cs @@ -0,0 +1,87 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace LiveMetrics +{ + /// Metric data point. + public partial class MetricPoint + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// Metric name. + /// Metric value. + /// Metric weight. + /// is null. + public MetricPoint(string name, double value, int weight) + { + Argument.AssertNotNull(name, nameof(name)); + + Name = name; + Value = value; + Weight = weight; + } + + /// Initializes a new instance of . + /// Metric name. + /// Metric value. + /// Metric weight. + /// Keeps track of any properties unknown to the library. + internal MetricPoint(string name, double value, int weight, IDictionary serializedAdditionalRawData) + { + Name = name; + Value = value; + Weight = weight; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal MetricPoint() + { + } + + /// Metric name. + public string Name { get; } + /// Metric value. + public double Value { get; } + /// Metric weight. + public int Weight { get; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/MonitoringDataPoint.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/MonitoringDataPoint.Serialization.cs new file mode 100644 index 000000000000..92883288f97d --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/MonitoringDataPoint.Serialization.cs @@ -0,0 +1,344 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + public partial class MonitoringDataPoint : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(MonitoringDataPoint)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("Version"u8); + writer.WriteStringValue(Version); + writer.WritePropertyName("InvariantVersion"u8); + writer.WriteNumberValue(InvariantVersion); + writer.WritePropertyName("Instance"u8); + writer.WriteStringValue(Instance); + writer.WritePropertyName("RoleName"u8); + writer.WriteStringValue(RoleName); + writer.WritePropertyName("MachineName"u8); + writer.WriteStringValue(MachineName); + writer.WritePropertyName("StreamId"u8); + writer.WriteStringValue(StreamId); + if (Optional.IsDefined(Timestamp)) + { + writer.WritePropertyName("Timestamp"u8); + writer.WriteStringValue(Timestamp.Value, "O"); + } + if (Optional.IsDefined(TransmissionTime)) + { + writer.WritePropertyName("TransmissionTime"u8); + writer.WriteStringValue(TransmissionTime.Value, "O"); + } + writer.WritePropertyName("IsWebApp"u8); + writer.WriteBooleanValue(IsWebApp); + writer.WritePropertyName("PerformanceCollectionSupported"u8); + writer.WriteBooleanValue(PerformanceCollectionSupported); + if (Optional.IsCollectionDefined(Metrics)) + { + writer.WritePropertyName("Metrics"u8); + writer.WriteStartArray(); + foreach (var item in Metrics) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (Optional.IsCollectionDefined(Documents)) + { + writer.WritePropertyName("Documents"u8); + writer.WriteStartArray(); + foreach (var item in Documents) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (Optional.IsCollectionDefined(TopCpuProcesses)) + { + writer.WritePropertyName("TopCpuProcesses"u8); + writer.WriteStartArray(); + foreach (var item in TopCpuProcesses) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (Optional.IsCollectionDefined(CollectionConfigurationErrors)) + { + writer.WritePropertyName("CollectionConfigurationErrors"u8); + writer.WriteStartArray(); + foreach (var item in CollectionConfigurationErrors) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + MonitoringDataPoint IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(MonitoringDataPoint)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMonitoringDataPoint(document.RootElement, options); + } + + internal static MonitoringDataPoint DeserializeMonitoringDataPoint(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string version = default; + int invariantVersion = default; + string instance = default; + string roleName = default; + string machineName = default; + string streamId = default; + DateTimeOffset? timestamp = default; + DateTimeOffset? transmissionTime = default; + bool isWebApp = default; + bool performanceCollectionSupported = default; + IList metrics = default; + IList documents = default; + IList topCpuProcesses = default; + IList collectionConfigurationErrors = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("Version"u8)) + { + version = property.Value.GetString(); + continue; + } + if (property.NameEquals("InvariantVersion"u8)) + { + invariantVersion = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("Instance"u8)) + { + instance = property.Value.GetString(); + continue; + } + if (property.NameEquals("RoleName"u8)) + { + roleName = property.Value.GetString(); + continue; + } + if (property.NameEquals("MachineName"u8)) + { + machineName = property.Value.GetString(); + continue; + } + if (property.NameEquals("StreamId"u8)) + { + streamId = property.Value.GetString(); + continue; + } + if (property.NameEquals("Timestamp"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + timestamp = property.Value.GetDateTimeOffset("O"); + continue; + } + if (property.NameEquals("TransmissionTime"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + transmissionTime = property.Value.GetDateTimeOffset("O"); + continue; + } + if (property.NameEquals("IsWebApp"u8)) + { + isWebApp = property.Value.GetBoolean(); + continue; + } + if (property.NameEquals("PerformanceCollectionSupported"u8)) + { + performanceCollectionSupported = property.Value.GetBoolean(); + continue; + } + if (property.NameEquals("Metrics"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(MetricPoint.DeserializeMetricPoint(item, options)); + } + metrics = array; + continue; + } + if (property.NameEquals("Documents"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(DocumentIngress.DeserializeDocumentIngress(item, options)); + } + documents = array; + continue; + } + if (property.NameEquals("TopCpuProcesses"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(ProcessCpuData.DeserializeProcessCpuData(item, options)); + } + topCpuProcesses = array; + continue; + } + if (property.NameEquals("CollectionConfigurationErrors"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(CollectionConfigurationError.DeserializeCollectionConfigurationError(item, options)); + } + collectionConfigurationErrors = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new MonitoringDataPoint( + version, + invariantVersion, + instance, + roleName, + machineName, + streamId, + timestamp, + transmissionTime, + isWebApp, + performanceCollectionSupported, + metrics ?? new ChangeTrackingList(), + documents ?? new ChangeTrackingList(), + topCpuProcesses ?? new ChangeTrackingList(), + collectionConfigurationErrors ?? new ChangeTrackingList(), + serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(MonitoringDataPoint)} does not support writing '{options.Format}' format."); + } + } + + MonitoringDataPoint IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeMonitoringDataPoint(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MonitoringDataPoint)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static MonitoringDataPoint FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeMonitoringDataPoint(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/MonitoringDataPoint.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/MonitoringDataPoint.cs new file mode 100644 index 000000000000..5198042c9af1 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/MonitoringDataPoint.cs @@ -0,0 +1,157 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace LiveMetrics +{ + /// Monitoring data point coming from the client, which includes metrics, documents and other metadata info. + public partial class MonitoringDataPoint + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// Application Insights SDK version. + /// Version/generation of the data contract (MonitoringDataPoint) between SDK and Live Metrics. + /// Service instance name where Application Insights SDK lives. + /// Service role name. + /// Computer name where Application Insights SDK lives. + /// Identifies an Application Insights SDK as a trusted agent to report metrics and documents. + /// True if the current application is an Azure Web App. + /// True if performance counters collection is supported. + /// , , , or is null. + public MonitoringDataPoint(string version, int invariantVersion, string instance, string roleName, string machineName, string streamId, bool isWebApp, bool performanceCollectionSupported) + { + Argument.AssertNotNull(version, nameof(version)); + Argument.AssertNotNull(instance, nameof(instance)); + Argument.AssertNotNull(roleName, nameof(roleName)); + Argument.AssertNotNull(machineName, nameof(machineName)); + Argument.AssertNotNull(streamId, nameof(streamId)); + + Version = version; + InvariantVersion = invariantVersion; + Instance = instance; + RoleName = roleName; + MachineName = machineName; + StreamId = streamId; + IsWebApp = isWebApp; + PerformanceCollectionSupported = performanceCollectionSupported; + Metrics = new ChangeTrackingList(); + Documents = new ChangeTrackingList(); + TopCpuProcesses = new ChangeTrackingList(); + CollectionConfigurationErrors = new ChangeTrackingList(); + } + + /// Initializes a new instance of . + /// Application Insights SDK version. + /// Version/generation of the data contract (MonitoringDataPoint) between SDK and Live Metrics. + /// Service instance name where Application Insights SDK lives. + /// Service role name. + /// Computer name where Application Insights SDK lives. + /// Identifies an Application Insights SDK as a trusted agent to report metrics and documents. + /// Data point generation timestamp. + /// Timestamp when the client transmits the metrics and documents to Live Metrics. + /// True if the current application is an Azure Web App. + /// True if performance counters collection is supported. + /// An array of metric data points. + /// + /// An array of documents of a specific type {Request}, {RemoteDependency}, {Exception}, {Event}, or {Trace} + /// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes. + /// The available derived classes include , , , and . + /// + /// An array of top cpu consumption data point. + /// An array of error while SDK parses and applies the {CollectionConfigurationInfo} provided by Live Metrics. + /// Keeps track of any properties unknown to the library. + internal MonitoringDataPoint(string version, int invariantVersion, string instance, string roleName, string machineName, string streamId, DateTimeOffset? timestamp, DateTimeOffset? transmissionTime, bool isWebApp, bool performanceCollectionSupported, IList metrics, IList documents, IList topCpuProcesses, IList collectionConfigurationErrors, IDictionary serializedAdditionalRawData) + { + Version = version; + InvariantVersion = invariantVersion; + Instance = instance; + RoleName = roleName; + MachineName = machineName; + StreamId = streamId; + Timestamp = timestamp; + TransmissionTime = transmissionTime; + IsWebApp = isWebApp; + PerformanceCollectionSupported = performanceCollectionSupported; + Metrics = metrics; + Documents = documents; + TopCpuProcesses = topCpuProcesses; + CollectionConfigurationErrors = collectionConfigurationErrors; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal MonitoringDataPoint() + { + } + + /// Application Insights SDK version. + public string Version { get; } + /// Version/generation of the data contract (MonitoringDataPoint) between SDK and Live Metrics. + public int InvariantVersion { get; } + /// Service instance name where Application Insights SDK lives. + public string Instance { get; } + /// Service role name. + public string RoleName { get; } + /// Computer name where Application Insights SDK lives. + public string MachineName { get; } + /// Identifies an Application Insights SDK as a trusted agent to report metrics and documents. + public string StreamId { get; } + /// Data point generation timestamp. + public DateTimeOffset? Timestamp { get; set; } + /// Timestamp when the client transmits the metrics and documents to Live Metrics. + public DateTimeOffset? TransmissionTime { get; set; } + /// True if the current application is an Azure Web App. + public bool IsWebApp { get; } + /// True if performance counters collection is supported. + public bool PerformanceCollectionSupported { get; } + /// An array of metric data points. + public IList Metrics { get; } + /// + /// An array of documents of a specific type {Request}, {RemoteDependency}, {Exception}, {Event}, or {Trace} + /// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes. + /// The available derived classes include , , , and . + /// + public IList Documents { get; } + /// An array of top cpu consumption data point. + public IList TopCpuProcesses { get; } + /// An array of error while SDK parses and applies the {CollectionConfigurationInfo} provided by Live Metrics. + public IList CollectionConfigurationErrors { get; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/PredicateType.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/PredicateType.cs new file mode 100644 index 000000000000..1804309fc4e3 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/PredicateType.cs @@ -0,0 +1,69 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace LiveMetrics +{ + /// Enum representing the different types of predicates. + public readonly partial struct PredicateType : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public PredicateType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string EqualValue = "Equal"; + private const string NotEqualValue = "NotEqual"; + private const string LessThanValue = "LessThan"; + private const string GreaterThanValue = "GreaterThan"; + private const string LessThanOrEqualValue = "LessThanOrEqual"; + private const string GreaterThanOrEqualValue = "GreaterThanOrEqual"; + private const string ContainsValue = "Contains"; + private const string DoesNotContainValue = "DoesNotContain"; + + /// Represents an equality predicate. + public static PredicateType Equal { get; } = new PredicateType(EqualValue); + /// Represents a not-equal predicate. + public static PredicateType NotEqual { get; } = new PredicateType(NotEqualValue); + /// Represents a less-than predicate. + public static PredicateType LessThan { get; } = new PredicateType(LessThanValue); + /// Represents a greater-than predicate. + public static PredicateType GreaterThan { get; } = new PredicateType(GreaterThanValue); + /// Represents a less-than-or-equal predicate. + public static PredicateType LessThanOrEqual { get; } = new PredicateType(LessThanOrEqualValue); + /// Represents a greater-than-or-equal predicate. + public static PredicateType GreaterThanOrEqual { get; } = new PredicateType(GreaterThanOrEqualValue); + /// Represents a contains predicate. + public static PredicateType Contains { get; } = new PredicateType(ContainsValue); + /// Represents a does-not-contain predicate. + public static PredicateType DoesNotContain { get; } = new PredicateType(DoesNotContainValue); + /// Determines if two values are the same. + public static bool operator ==(PredicateType left, PredicateType right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(PredicateType left, PredicateType right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator PredicateType(string value) => new PredicateType(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is PredicateType other && Equals(other); + /// + public bool Equals(PredicateType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + /// + public override string ToString() => _value; + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/ProcessCpuData.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/ProcessCpuData.Serialization.cs new file mode 100644 index 000000000000..9b4e00bb6763 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/ProcessCpuData.Serialization.cs @@ -0,0 +1,151 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + public partial class ProcessCpuData : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ProcessCpuData)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("ProcessName"u8); + writer.WriteStringValue(ProcessName); + writer.WritePropertyName("CpuPercentage"u8); + writer.WriteNumberValue(CpuPercentage); + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ProcessCpuData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ProcessCpuData)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeProcessCpuData(document.RootElement, options); + } + + internal static ProcessCpuData DeserializeProcessCpuData(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string processName = default; + int cpuPercentage = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("ProcessName"u8)) + { + processName = property.Value.GetString(); + continue; + } + if (property.NameEquals("CpuPercentage"u8)) + { + cpuPercentage = property.Value.GetInt32(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ProcessCpuData(processName, cpuPercentage, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ProcessCpuData)} does not support writing '{options.Format}' format."); + } + } + + ProcessCpuData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeProcessCpuData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ProcessCpuData)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static ProcessCpuData FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeProcessCpuData(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/ProcessCpuData.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/ProcessCpuData.cs new file mode 100644 index 000000000000..c4f1d9457d5e --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/ProcessCpuData.cs @@ -0,0 +1,81 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace LiveMetrics +{ + /// CPU consumption datapoint. + public partial class ProcessCpuData + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// Process name. + /// CPU consumption percentage. + /// is null. + public ProcessCpuData(string processName, int cpuPercentage) + { + Argument.AssertNotNull(processName, nameof(processName)); + + ProcessName = processName; + CpuPercentage = cpuPercentage; + } + + /// Initializes a new instance of . + /// Process name. + /// CPU consumption percentage. + /// Keeps track of any properties unknown to the library. + internal ProcessCpuData(string processName, int cpuPercentage, IDictionary serializedAdditionalRawData) + { + ProcessName = processName; + CpuPercentage = cpuPercentage; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal ProcessCpuData() + { + } + + /// Process name. + public string ProcessName { get; } + /// CPU consumption percentage. + public int CpuPercentage { get; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/QuotaConfigurationInfo.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/QuotaConfigurationInfo.Serialization.cs new file mode 100644 index 000000000000..b1a07edabdee --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/QuotaConfigurationInfo.Serialization.cs @@ -0,0 +1,166 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + public partial class QuotaConfigurationInfo : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(QuotaConfigurationInfo)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(InitialQuota)) + { + writer.WritePropertyName("InitialQuota"u8); + writer.WriteNumberValue(InitialQuota.Value); + } + writer.WritePropertyName("MaxQuota"u8); + writer.WriteNumberValue(MaxQuota); + writer.WritePropertyName("QuotaAccrualRatePerSec"u8); + writer.WriteNumberValue(QuotaAccrualRatePerSec); + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + QuotaConfigurationInfo IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(QuotaConfigurationInfo)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeQuotaConfigurationInfo(document.RootElement, options); + } + + internal static QuotaConfigurationInfo DeserializeQuotaConfigurationInfo(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + float? initialQuota = default; + float maxQuota = default; + float quotaAccrualRatePerSec = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("InitialQuota"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + initialQuota = property.Value.GetSingle(); + continue; + } + if (property.NameEquals("MaxQuota"u8)) + { + maxQuota = property.Value.GetSingle(); + continue; + } + if (property.NameEquals("QuotaAccrualRatePerSec"u8)) + { + quotaAccrualRatePerSec = property.Value.GetSingle(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new QuotaConfigurationInfo(initialQuota, maxQuota, quotaAccrualRatePerSec, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(QuotaConfigurationInfo)} does not support writing '{options.Format}' format."); + } + } + + QuotaConfigurationInfo IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeQuotaConfigurationInfo(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(QuotaConfigurationInfo)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static QuotaConfigurationInfo FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeQuotaConfigurationInfo(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/QuotaConfigurationInfo.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/QuotaConfigurationInfo.cs new file mode 100644 index 000000000000..3c09c73551fb --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/QuotaConfigurationInfo.cs @@ -0,0 +1,82 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace LiveMetrics +{ + /// Controls document quotas to be sent to Live Metrics. + public partial class QuotaConfigurationInfo + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// Max quota. + /// Quota accrual rate per second. + internal QuotaConfigurationInfo(float maxQuota, float quotaAccrualRatePerSec) + { + MaxQuota = maxQuota; + QuotaAccrualRatePerSec = quotaAccrualRatePerSec; + } + + /// Initializes a new instance of . + /// Initial quota. + /// Max quota. + /// Quota accrual rate per second. + /// Keeps track of any properties unknown to the library. + internal QuotaConfigurationInfo(float? initialQuota, float maxQuota, float quotaAccrualRatePerSec, IDictionary serializedAdditionalRawData) + { + InitialQuota = initialQuota; + MaxQuota = maxQuota; + QuotaAccrualRatePerSec = quotaAccrualRatePerSec; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal QuotaConfigurationInfo() + { + } + + /// Initial quota. + public float? InitialQuota { get; } + /// Max quota. + public float MaxQuota { get; } + /// Quota accrual rate per second. + public float QuotaAccrualRatePerSec { get; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/RemoteDependency.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/RemoteDependency.Serialization.cs new file mode 100644 index 000000000000..35362a1356ff --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/RemoteDependency.Serialization.cs @@ -0,0 +1,209 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + public partial class RemoteDependency : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(RemoteDependency)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Name)) + { + writer.WritePropertyName("Name"u8); + writer.WriteStringValue(Name); + } + if (Optional.IsDefined(CommandName)) + { + writer.WritePropertyName("CommandName"u8); + writer.WriteStringValue(CommandName); + } + if (Optional.IsDefined(ResultCode)) + { + writer.WritePropertyName("ResultCode"u8); + writer.WriteStringValue(ResultCode); + } + if (Optional.IsDefined(Duration)) + { + writer.WritePropertyName("Duration"u8); + writer.WriteStringValue(Duration); + } + } + + RemoteDependency IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(RemoteDependency)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRemoteDependency(document.RootElement, options); + } + + internal static RemoteDependency DeserializeRemoteDependency(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string name = default; + string commandName = default; + string resultCode = default; + string duration = default; + DocumentType documentType = default; + IList documentStreamIds = default; + IList properties = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("Name"u8)) + { + name = property.Value.GetString(); + continue; + } + if (property.NameEquals("CommandName"u8)) + { + commandName = property.Value.GetString(); + continue; + } + if (property.NameEquals("ResultCode"u8)) + { + resultCode = property.Value.GetString(); + continue; + } + if (property.NameEquals("Duration"u8)) + { + duration = property.Value.GetString(); + continue; + } + if (property.NameEquals("DocumentType"u8)) + { + documentType = new DocumentType(property.Value.GetString()); + continue; + } + if (property.NameEquals("DocumentStreamIds"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + documentStreamIds = array; + continue; + } + if (property.NameEquals("Properties"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(KeyValuePairStringString.DeserializeKeyValuePairStringString(item, options)); + } + properties = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RemoteDependency( + documentType, + documentStreamIds ?? new ChangeTrackingList(), + properties ?? new ChangeTrackingList(), + serializedAdditionalRawData, + name, + commandName, + resultCode, + duration); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(RemoteDependency)} does not support writing '{options.Format}' format."); + } + } + + RemoteDependency IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRemoteDependency(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RemoteDependency)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static new RemoteDependency FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRemoteDependency(document.RootElement); + } + + /// Convert into a . + internal override RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/RemoteDependency.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/RemoteDependency.cs new file mode 100644 index 000000000000..6cab0e3ad447 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/RemoteDependency.cs @@ -0,0 +1,48 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace LiveMetrics +{ + /// RemoteDependency document type. + public partial class RemoteDependency : DocumentIngress + { + /// Initializes a new instance of . + public RemoteDependency() + { + DocumentType = DocumentType.RemoteDependency; + } + + /// Initializes a new instance of . + /// Telemetry type. Types not defined in enum will get replaced with a 'Unknown' type. + /// An array of document streaming ids. Each id identifies a flow of documents customized by UX customers. + /// Collection of custom properties. + /// Keeps track of any properties unknown to the library. + /// Name of the command initiated with this dependency call, e.g., GET /username. + /// URL of the dependency call to the target, with all query string parameters. + /// Result code of a dependency call. Examples are SQL error code and HTTP status code. + /// Request duration in ISO 8601 duration format, i.e., P[n]Y[n]M[n]DT[n]H[n]M[n]S or P[n]W. + internal RemoteDependency(DocumentType documentType, IList documentStreamIds, IList properties, IDictionary serializedAdditionalRawData, string name, string commandName, string resultCode, string duration) : base(documentType, documentStreamIds, properties, serializedAdditionalRawData) + { + Name = name; + CommandName = commandName; + ResultCode = resultCode; + Duration = duration; + } + + /// Name of the command initiated with this dependency call, e.g., GET /username. + public string Name { get; set; } + /// URL of the dependency call to the target, with all query string parameters. + public string CommandName { get; set; } + /// Result code of a dependency call. Examples are SQL error code and HTTP status code. + public string ResultCode { get; set; } + /// Request duration in ISO 8601 duration format, i.e., P[n]Y[n]M[n]DT[n]H[n]M[n]S or P[n]W. + public string Duration { get; set; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/Request.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/Request.Serialization.cs new file mode 100644 index 000000000000..79dc2e9ccec8 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/Request.Serialization.cs @@ -0,0 +1,213 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + public partial class Request : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Request)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Name)) + { + writer.WritePropertyName("Name"u8); + writer.WriteStringValue(Name); + } + if (Optional.IsDefined(Url)) + { + writer.WritePropertyName("Url"u8); + writer.WriteStringValue(Url.AbsoluteUri); + } + if (Optional.IsDefined(ResponseCode)) + { + writer.WritePropertyName("ResponseCode"u8); + writer.WriteStringValue(ResponseCode); + } + if (Optional.IsDefined(Duration)) + { + writer.WritePropertyName("Duration"u8); + writer.WriteStringValue(Duration); + } + } + + Request IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Request)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRequest(document.RootElement, options); + } + + internal static Request DeserializeRequest(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string name = default; + Uri url = default; + string responseCode = default; + string duration = default; + DocumentType documentType = default; + IList documentStreamIds = default; + IList properties = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("Name"u8)) + { + name = property.Value.GetString(); + continue; + } + if (property.NameEquals("Url"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + url = new Uri(property.Value.GetString()); + continue; + } + if (property.NameEquals("ResponseCode"u8)) + { + responseCode = property.Value.GetString(); + continue; + } + if (property.NameEquals("Duration"u8)) + { + duration = property.Value.GetString(); + continue; + } + if (property.NameEquals("DocumentType"u8)) + { + documentType = new DocumentType(property.Value.GetString()); + continue; + } + if (property.NameEquals("DocumentStreamIds"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + documentStreamIds = array; + continue; + } + if (property.NameEquals("Properties"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(KeyValuePairStringString.DeserializeKeyValuePairStringString(item, options)); + } + properties = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new Request( + documentType, + documentStreamIds ?? new ChangeTrackingList(), + properties ?? new ChangeTrackingList(), + serializedAdditionalRawData, + name, + url, + responseCode, + duration); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(Request)} does not support writing '{options.Format}' format."); + } + } + + Request IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRequest(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(Request)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static new Request FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRequest(document.RootElement); + } + + /// Convert into a . + internal override RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/Request.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/Request.cs new file mode 100644 index 000000000000..98ccc03686b9 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/Request.cs @@ -0,0 +1,48 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace LiveMetrics +{ + /// Request document type. + public partial class Request : DocumentIngress + { + /// Initializes a new instance of . + public Request() + { + DocumentType = DocumentType.Request; + } + + /// Initializes a new instance of . + /// Telemetry type. Types not defined in enum will get replaced with a 'Unknown' type. + /// An array of document streaming ids. Each id identifies a flow of documents customized by UX customers. + /// Collection of custom properties. + /// Keeps track of any properties unknown to the library. + /// Name of the request, e.g., 'GET /values/{id}'. + /// Request URL with all query string parameters. + /// Result of a request execution. For http requests, it could be some HTTP status code. + /// Request duration in ISO 8601 duration format, i.e., P[n]Y[n]M[n]DT[n]H[n]M[n]S or P[n]W. + internal Request(DocumentType documentType, IList documentStreamIds, IList properties, IDictionary serializedAdditionalRawData, string name, Uri url, string responseCode, string duration) : base(documentType, documentStreamIds, properties, serializedAdditionalRawData) + { + Name = name; + Url = url; + ResponseCode = responseCode; + Duration = duration; + } + + /// Name of the request, e.g., 'GET /values/{id}'. + public string Name { get; set; } + /// Request URL with all query string parameters. + public Uri Url { get; set; } + /// Result of a request execution. For http requests, it could be some HTTP status code. + public string ResponseCode { get; set; } + /// Request duration in ISO 8601 duration format, i.e., P[n]Y[n]M[n]DT[n]H[n]M[n]S or P[n]W. + public string Duration { get; set; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/TelemetryType.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/TelemetryType.cs new file mode 100644 index 000000000000..9d35769389dc --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/TelemetryType.cs @@ -0,0 +1,66 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace LiveMetrics +{ + /// Telemetry type. + public readonly partial struct TelemetryType : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public TelemetryType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string RequestValue = "Request"; + private const string DependencyValue = "Dependency"; + private const string ExceptionValue = "Exception"; + private const string EventValue = "Event"; + private const string MetricValue = "Metric"; + private const string PerformanceCounterValue = "PerformanceCounter"; + private const string TraceValue = "Trace"; + + /// Represents a request telemetry type. + public static TelemetryType Request { get; } = new TelemetryType(RequestValue); + /// Represents a dependency telemetry type. + public static TelemetryType Dependency { get; } = new TelemetryType(DependencyValue); + /// Represents an exception telemetry type. + public static TelemetryType Exception { get; } = new TelemetryType(ExceptionValue); + /// Represents an event telemetry type. + public static TelemetryType Event { get; } = new TelemetryType(EventValue); + /// Represents a metric telemetry type. + public static TelemetryType Metric { get; } = new TelemetryType(MetricValue); + /// Represents a performance counter telemetry type. + public static TelemetryType PerformanceCounter { get; } = new TelemetryType(PerformanceCounterValue); + /// Represents a trace telemetry type. + public static TelemetryType Trace { get; } = new TelemetryType(TraceValue); + /// Determines if two values are the same. + public static bool operator ==(TelemetryType left, TelemetryType right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(TelemetryType left, TelemetryType right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator TelemetryType(string value) => new TelemetryType(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is TelemetryType other && Equals(other); + /// + public bool Equals(TelemetryType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + /// + public override string ToString() => _value; + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/Trace.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/Trace.Serialization.cs new file mode 100644 index 000000000000..2eb7320d2bbf --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/Trace.Serialization.cs @@ -0,0 +1,168 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + public partial class Trace : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Trace)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Message)) + { + writer.WritePropertyName("Message"u8); + writer.WriteStringValue(Message); + } + } + + Trace IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Trace)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeTrace(document.RootElement, options); + } + + internal static Trace DeserializeTrace(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string message = default; + DocumentType documentType = default; + IList documentStreamIds = default; + IList properties = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("Message"u8)) + { + message = property.Value.GetString(); + continue; + } + if (property.NameEquals("DocumentType"u8)) + { + documentType = new DocumentType(property.Value.GetString()); + continue; + } + if (property.NameEquals("DocumentStreamIds"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + documentStreamIds = array; + continue; + } + if (property.NameEquals("Properties"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(KeyValuePairStringString.DeserializeKeyValuePairStringString(item, options)); + } + properties = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new Trace(documentType, documentStreamIds ?? new ChangeTrackingList(), properties ?? new ChangeTrackingList(), serializedAdditionalRawData, message); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(Trace)} does not support writing '{options.Format}' format."); + } + } + + Trace IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeTrace(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(Trace)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static new Trace FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeTrace(document.RootElement); + } + + /// Convert into a . + internal override RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/Trace.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/Trace.cs new file mode 100644 index 000000000000..411e5ec67d06 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/Trace.cs @@ -0,0 +1,36 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace LiveMetrics +{ + /// Trace document type. + public partial class Trace : DocumentIngress + { + /// Initializes a new instance of . + public Trace() + { + DocumentType = DocumentType.Trace; + } + + /// Initializes a new instance of . + /// Telemetry type. Types not defined in enum will get replaced with a 'Unknown' type. + /// An array of document streaming ids. Each id identifies a flow of documents customized by UX customers. + /// Collection of custom properties. + /// Keeps track of any properties unknown to the library. + /// Trace message. + internal Trace(DocumentType documentType, IList documentStreamIds, IList properties, IDictionary serializedAdditionalRawData, string message) : base(documentType, documentStreamIds, properties, serializedAdditionalRawData) + { + Message = message; + } + + /// Trace message. + public string Message { get; set; } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/UnknownDocumentIngress.Serialization.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/UnknownDocumentIngress.Serialization.cs new file mode 100644 index 000000000000..53049088a9b1 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/UnknownDocumentIngress.Serialization.cs @@ -0,0 +1,157 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace LiveMetrics +{ + internal partial class UnknownDocumentIngress : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(DocumentIngress)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + } + + DocumentIngress IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(DocumentIngress)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeDocumentIngress(document.RootElement, options); + } + + internal static UnknownDocumentIngress DeserializeUnknownDocumentIngress(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + DocumentType documentType = "AutoRest.CSharp.Output.Models.Types.EnumTypeValue"; + IList documentStreamIds = default; + IList properties = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("DocumentType"u8)) + { + documentType = new DocumentType(property.Value.GetString()); + continue; + } + if (property.NameEquals("DocumentStreamIds"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + documentStreamIds = array; + continue; + } + if (property.NameEquals("Properties"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(KeyValuePairStringString.DeserializeKeyValuePairStringString(item, options)); + } + properties = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new UnknownDocumentIngress(documentType, documentStreamIds ?? new ChangeTrackingList(), properties ?? new ChangeTrackingList(), serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(DocumentIngress)} does not support writing '{options.Format}' format."); + } + } + + DocumentIngress IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeDocumentIngress(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(DocumentIngress)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static new UnknownDocumentIngress FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeUnknownDocumentIngress(document.RootElement); + } + + /// Convert into a . + internal override RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/Generated/UnknownDocumentIngress.cs b/sdk/applicationinsights/LiveMetrics/src/Generated/UnknownDocumentIngress.cs new file mode 100644 index 000000000000..6212f92f2bc6 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Generated/UnknownDocumentIngress.cs @@ -0,0 +1,30 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace LiveMetrics +{ + /// Unknown version of DocumentIngress. + internal partial class UnknownDocumentIngress : DocumentIngress + { + /// Initializes a new instance of . + /// Telemetry type. Types not defined in enum will get replaced with a 'Unknown' type. + /// An array of document streaming ids. Each id identifies a flow of documents customized by UX customers. + /// Collection of custom properties. + /// Keeps track of any properties unknown to the library. + internal UnknownDocumentIngress(DocumentType documentType, IList documentStreamIds, IList properties, IDictionary serializedAdditionalRawData) : base(documentType, documentStreamIds, properties, serializedAdditionalRawData) + { + } + + /// Initializes a new instance of for deserialization. + internal UnknownDocumentIngress() + { + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/src/LiveMetrics.csproj b/sdk/applicationinsights/LiveMetrics/src/LiveMetrics.csproj new file mode 100644 index 000000000000..17d89db02593 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/LiveMetrics.csproj @@ -0,0 +1,19 @@ + + + This is the LiveMetrics client library for developing .NET applications with rich experience. + Azure SDK Code Generation LiveMetrics for Azure Data Plane + 1.0.0-beta.1 + LiveMetrics + $(RequiredTargetFrameworks) + true + + + + + + + + + + + diff --git a/sdk/applicationinsights/LiveMetrics/src/Properties/AssemblyInfo.cs b/sdk/applicationinsights/LiveMetrics/src/Properties/AssemblyInfo.cs new file mode 100644 index 000000000000..f3bafe56f482 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/src/Properties/AssemblyInfo.cs @@ -0,0 +1,6 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("LiveMetrics.Tests, PublicKey = 0024000004800000940000000602000000240000525341310004000001000100d15ddcb29688295338af4b7686603fe614abd555e09efba8fb88ee09e1f7b1ccaeed2e8f823fa9eef3fdd60217fc012ea67d2479751a0b8c087a4185541b851bd8b16f8d91b840e51b1cb0ba6fe647997e57429265e85ef62d565db50a69ae1647d54d7bd855e4db3d8a91510e5bcbd0edfbbecaa20a7bd9ae74593daa7b11b4")] diff --git a/sdk/applicationinsights/LiveMetrics/tests/Generated/Samples/Samples_LiveMetricsClient.cs b/sdk/applicationinsights/LiveMetrics/tests/Generated/Samples/Samples_LiveMetricsClient.cs new file mode 100644 index 000000000000..94c8c0332502 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/tests/Generated/Samples/Samples_LiveMetricsClient.cs @@ -0,0 +1,454 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Text.Json; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Identity; +using NUnit.Framework; + +namespace LiveMetrics.Samples +{ + public partial class Samples_LiveMetricsClient + { + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_LiveMetrics_IsSubscribed_LiveMetricsClientChecksIfItsDataIsSubscribedTo() + { + TokenCredential credential = new DefaultAzureCredential(); + LiveMetricsClient client = new LiveMetricsClient(credential); + + using RequestContent content = RequestContent.Create(new + { + Instance = "server-pc-name", + InvariantVersion = 5, + IsWebApp = false, + MachineName = "SERVER-PC-NAME", + PerformanceCollectionSupported = true, + RoleName = "", + StreamId = "41112328328b4edb9aa777aa6d675186", + Timestamp = "2024-02-01T21:36:32.5717105Z", + Version = "2.21.0-429", + }); + Response response = client.IsSubscribed("4473b98e-c70d-4220-b57c-2984c2a0e5cd", content); + + JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; + Console.WriteLine(result.GetProperty("ETag").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("Id").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("TelemetryType").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("FilterGroups")[0].GetProperty("Filters")[0].GetProperty("FieldName").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("FilterGroups")[0].GetProperty("Filters")[0].GetProperty("Predicate").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("FilterGroups")[0].GetProperty("Filters")[0].GetProperty("Comparand").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("Projection").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("Aggregation").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("BackEndAggregation").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("Id").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("DocumentFilterGroups")[0].GetProperty("TelemetryType").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("DocumentFilterGroups")[0].GetProperty("Filters").GetProperty("Filters")[0].GetProperty("FieldName").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("DocumentFilterGroups")[0].GetProperty("Filters").GetProperty("Filters")[0].GetProperty("Predicate").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("DocumentFilterGroups")[0].GetProperty("Filters").GetProperty("Filters")[0].GetProperty("Comparand").ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_LiveMetrics_IsSubscribed_LiveMetricsClientChecksIfItsDataIsSubscribedTo_Async() + { + TokenCredential credential = new DefaultAzureCredential(); + LiveMetricsClient client = new LiveMetricsClient(credential); + + using RequestContent content = RequestContent.Create(new + { + Instance = "server-pc-name", + InvariantVersion = 5, + IsWebApp = false, + MachineName = "SERVER-PC-NAME", + PerformanceCollectionSupported = true, + RoleName = "", + StreamId = "41112328328b4edb9aa777aa6d675186", + Timestamp = "2024-02-01T21:36:32.5717105Z", + Version = "2.21.0-429", + }); + Response response = await client.IsSubscribedAsync("4473b98e-c70d-4220-b57c-2984c2a0e5cd", content); + + JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; + Console.WriteLine(result.GetProperty("ETag").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("Id").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("TelemetryType").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("FilterGroups")[0].GetProperty("Filters")[0].GetProperty("FieldName").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("FilterGroups")[0].GetProperty("Filters")[0].GetProperty("Predicate").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("FilterGroups")[0].GetProperty("Filters")[0].GetProperty("Comparand").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("Projection").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("Aggregation").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("BackEndAggregation").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("Id").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("DocumentFilterGroups")[0].GetProperty("TelemetryType").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("DocumentFilterGroups")[0].GetProperty("Filters").GetProperty("Filters")[0].GetProperty("FieldName").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("DocumentFilterGroups")[0].GetProperty("Filters").GetProperty("Filters")[0].GetProperty("Predicate").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("DocumentFilterGroups")[0].GetProperty("Filters").GetProperty("Filters")[0].GetProperty("Comparand").ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_LiveMetrics_IsSubscribed_LiveMetricsClientChecksIfItsDataIsSubscribedTo_Convenience() + { + TokenCredential credential = new DefaultAzureCredential(); + LiveMetricsClient client = new LiveMetricsClient(credential); + + Response response = client.IsSubscribed("4473b98e-c70d-4220-b57c-2984c2a0e5cd"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_LiveMetrics_IsSubscribed_LiveMetricsClientChecksIfItsDataIsSubscribedTo_Convenience_Async() + { + TokenCredential credential = new DefaultAzureCredential(); + LiveMetricsClient client = new LiveMetricsClient(credential); + + Response response = await client.IsSubscribedAsync("4473b98e-c70d-4220-b57c-2984c2a0e5cd"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_LiveMetrics_Publish_LiveMetricsClientPublishesLiveMetrics() + { + TokenCredential credential = new DefaultAzureCredential(); + LiveMetricsClient client = new LiveMetricsClient(credential); + + using RequestContent content = RequestContent.Create(new object[] + { +new +{ +Instance = "server-pc-name", +Metrics = new object[] +{ +new +{ +Name = "\\ApplicationInsights\\Requests/Sec", +Value = 0.9989, +Weight = 1, +}, +new +{ +Name = "\\ApplicationInsights\\Request Duration", +Value = 2.266, +Weight = 1, +}, +new +{ +Name = "\\ApplicationInsights\\Requests Failed/Sec", +Value = 0, +Weight = 1, +}, +new +{ +Name = "\\ApplicationInsights\\Requests Succeeded/Sec", +Value = 0.9989, +Weight = 1, +}, +new +{ +Name = "\\ApplicationInsights\\Dependency Calls/Sec", +Value = 0, +Weight = 1, +}, +new +{ +Name = "\\ApplicationInsights\\Dependency Call Duration", +Value = 0, +Weight = 0, +}, +new +{ +Name = "\\ApplicationInsights\\Dependency Calls Failed/Sec", +Value = 0, +Weight = 1, +}, +new +{ +Name = "\\ApplicationInsights\\Dependency Calls Succeeded/Sec", +Value = 0, +Weight = 1, +}, +new +{ +Name = "\\ApplicationInsights\\Exceptions/Sec", +Value = 0, +Weight = 1, +}, +new +{ +Name = "\\ASP.NET Applications(__Total__)\\Requests In Application Queue", +Value = 0, +Weight = 1, +}, +new +{ +Name = "\\Memory\\Committed Bytes", +Value = 19902644224, +Weight = 1, +}, +new +{ +Name = "\\Processor(_Total)\\% Processor Time", +Value = 54.738, +Weight = 1, +} +}, +Documents = new object[] +{ +new +{ +DocumentType = "Exception", +ExceptionMessage = "Value cannot be null.\r\nParameter name: This exception has properties", +ExceptionType = "System.ArgumentNullException", +Properties = new object[] +{ +new +{ +key = "UserProp2", +value = "UserPropValue2", +}, +new +{ +key = "DeveloperMode", +value = "true", +}, +new +{ +key = "UserProp1", +value = "UserPropValue1", +} +}, +}, +new +{ +DocumentType = "Request", +Duration = "PT0.0010105S", +Name = "GET Home/blablabla", +Properties = new object[] +{ +new +{ +key = "DeveloperMode", +value = "true", +} +}, +ResponseCode = "404", +Url = "http://40.78.109.134/Home/blablabla", +} +}, +Timestamp = "2024-02-01T21:36:30.5717105Z", +Version = "2.1.0.42", +InvariantVersion = 5, +IsWebApp = false, +MachineName = "SERVER-PC-NAME", +PerformanceCollectionSupported = true, +RoleName = "", +StreamId = "41112328328b4edb9aa777aa6d675186", +} + }); + Response response = client.Publish("4473b98e-c70d-4220-b57c-2984c2a0e5cd", content); + + JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; + Console.WriteLine(result.GetProperty("ETag").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("Id").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("TelemetryType").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("FilterGroups")[0].GetProperty("Filters")[0].GetProperty("FieldName").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("FilterGroups")[0].GetProperty("Filters")[0].GetProperty("Predicate").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("FilterGroups")[0].GetProperty("Filters")[0].GetProperty("Comparand").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("Projection").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("Aggregation").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("BackEndAggregation").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("Id").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("DocumentFilterGroups")[0].GetProperty("TelemetryType").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("DocumentFilterGroups")[0].GetProperty("Filters").GetProperty("Filters")[0].GetProperty("FieldName").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("DocumentFilterGroups")[0].GetProperty("Filters").GetProperty("Filters")[0].GetProperty("Predicate").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("DocumentFilterGroups")[0].GetProperty("Filters").GetProperty("Filters")[0].GetProperty("Comparand").ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_LiveMetrics_Publish_LiveMetricsClientPublishesLiveMetrics_Async() + { + TokenCredential credential = new DefaultAzureCredential(); + LiveMetricsClient client = new LiveMetricsClient(credential); + + using RequestContent content = RequestContent.Create(new object[] + { +new +{ +Instance = "server-pc-name", +Metrics = new object[] +{ +new +{ +Name = "\\ApplicationInsights\\Requests/Sec", +Value = 0.9989, +Weight = 1, +}, +new +{ +Name = "\\ApplicationInsights\\Request Duration", +Value = 2.266, +Weight = 1, +}, +new +{ +Name = "\\ApplicationInsights\\Requests Failed/Sec", +Value = 0, +Weight = 1, +}, +new +{ +Name = "\\ApplicationInsights\\Requests Succeeded/Sec", +Value = 0.9989, +Weight = 1, +}, +new +{ +Name = "\\ApplicationInsights\\Dependency Calls/Sec", +Value = 0, +Weight = 1, +}, +new +{ +Name = "\\ApplicationInsights\\Dependency Call Duration", +Value = 0, +Weight = 0, +}, +new +{ +Name = "\\ApplicationInsights\\Dependency Calls Failed/Sec", +Value = 0, +Weight = 1, +}, +new +{ +Name = "\\ApplicationInsights\\Dependency Calls Succeeded/Sec", +Value = 0, +Weight = 1, +}, +new +{ +Name = "\\ApplicationInsights\\Exceptions/Sec", +Value = 0, +Weight = 1, +}, +new +{ +Name = "\\ASP.NET Applications(__Total__)\\Requests In Application Queue", +Value = 0, +Weight = 1, +}, +new +{ +Name = "\\Memory\\Committed Bytes", +Value = 19902644224, +Weight = 1, +}, +new +{ +Name = "\\Processor(_Total)\\% Processor Time", +Value = 54.738, +Weight = 1, +} +}, +Documents = new object[] +{ +new +{ +DocumentType = "Exception", +ExceptionMessage = "Value cannot be null.\r\nParameter name: This exception has properties", +ExceptionType = "System.ArgumentNullException", +Properties = new object[] +{ +new +{ +key = "UserProp2", +value = "UserPropValue2", +}, +new +{ +key = "DeveloperMode", +value = "true", +}, +new +{ +key = "UserProp1", +value = "UserPropValue1", +} +}, +}, +new +{ +DocumentType = "Request", +Duration = "PT0.0010105S", +Name = "GET Home/blablabla", +Properties = new object[] +{ +new +{ +key = "DeveloperMode", +value = "true", +} +}, +ResponseCode = "404", +Url = "http://40.78.109.134/Home/blablabla", +} +}, +Timestamp = "2024-02-01T21:36:30.5717105Z", +Version = "2.1.0.42", +InvariantVersion = 5, +IsWebApp = false, +MachineName = "SERVER-PC-NAME", +PerformanceCollectionSupported = true, +RoleName = "", +StreamId = "41112328328b4edb9aa777aa6d675186", +} + }); + Response response = await client.PublishAsync("4473b98e-c70d-4220-b57c-2984c2a0e5cd", content); + + JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; + Console.WriteLine(result.GetProperty("ETag").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("Id").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("TelemetryType").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("FilterGroups")[0].GetProperty("Filters")[0].GetProperty("FieldName").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("FilterGroups")[0].GetProperty("Filters")[0].GetProperty("Predicate").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("FilterGroups")[0].GetProperty("Filters")[0].GetProperty("Comparand").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("Projection").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("Aggregation").ToString()); + Console.WriteLine(result.GetProperty("Metrics")[0].GetProperty("BackEndAggregation").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("Id").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("DocumentFilterGroups")[0].GetProperty("TelemetryType").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("DocumentFilterGroups")[0].GetProperty("Filters").GetProperty("Filters")[0].GetProperty("FieldName").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("DocumentFilterGroups")[0].GetProperty("Filters").GetProperty("Filters")[0].GetProperty("Predicate").ToString()); + Console.WriteLine(result.GetProperty("DocumentStreams")[0].GetProperty("DocumentFilterGroups")[0].GetProperty("Filters").GetProperty("Filters")[0].GetProperty("Comparand").ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_LiveMetrics_Publish_LiveMetricsClientPublishesLiveMetrics_Convenience() + { + TokenCredential credential = new DefaultAzureCredential(); + LiveMetricsClient client = new LiveMetricsClient(credential); + + Response response = client.Publish("4473b98e-c70d-4220-b57c-2984c2a0e5cd"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_LiveMetrics_Publish_LiveMetricsClientPublishesLiveMetrics_Convenience_Async() + { + TokenCredential credential = new DefaultAzureCredential(); + LiveMetricsClient client = new LiveMetricsClient(credential); + + Response response = await client.PublishAsync("4473b98e-c70d-4220-b57c-2984c2a0e5cd"); + } + } +} diff --git a/sdk/applicationinsights/LiveMetrics/tests/LiveMetrics.Tests.csproj b/sdk/applicationinsights/LiveMetrics/tests/LiveMetrics.Tests.csproj new file mode 100644 index 000000000000..56fe204affe9 --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/tests/LiveMetrics.Tests.csproj @@ -0,0 +1,19 @@ + + + $(RequiredTargetFrameworks) + + $(NoWarn);CS1591 + + + + + + + + + + + + + + diff --git a/sdk/applicationinsights/LiveMetrics/tsp-location.yaml b/sdk/applicationinsights/LiveMetrics/tsp-location.yaml new file mode 100644 index 000000000000..cfefb782e14f --- /dev/null +++ b/sdk/applicationinsights/LiveMetrics/tsp-location.yaml @@ -0,0 +1,4 @@ +directory: specification/applicationinsights/ApplicationInsights.LiveMetrics +commit: 867d5344efa0e71c7fa4977eb814398f67aa8ee1 +repo: Azure/azure-rest-api-specs +additionalDirectories: diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/Azure.ResourceManager.ImpactReporting.sln b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/Azure.ResourceManager.ImpactReporting.sln new file mode 100644 index 000000000000..8045641aab8e --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/Azure.ResourceManager.ImpactReporting.sln @@ -0,0 +1,56 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29709.97 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.ResourceManager.ImpactReporting.Samples", "samples\Azure.ResourceManager.ImpactReporting.Samples.csproj", "{7A2DFF15-5746-49F4-BD0F-C6C35337088A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Azure.ResourceManager.ImpactReporting", "src\Azure.ResourceManager.ImpactReporting.csproj", "{28FF4005-4467-4E36-92E7-DEA27DEB1519}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Azure.ResourceManager.ImpactReporting.Tests", "tests\Azure.ResourceManager.ImpactReporting.Tests.csproj", "{1F1CD1D4-9932-4B73-99D8-C252A67D4B46}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B0C276D1-2930-4887-B29A-D1A33E7009A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B0C276D1-2930-4887-B29A-D1A33E7009A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B0C276D1-2930-4887-B29A-D1A33E7009A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B0C276D1-2930-4887-B29A-D1A33E7009A2}.Release|Any CPU.Build.0 = Release|Any CPU + {8E9A77AC-792A-4432-8320-ACFD46730401}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E9A77AC-792A-4432-8320-ACFD46730401}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E9A77AC-792A-4432-8320-ACFD46730401}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E9A77AC-792A-4432-8320-ACFD46730401}.Release|Any CPU.Build.0 = Release|Any CPU + {7A2DFF15-5746-49F4-BD0F-C6C35337088A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7A2DFF15-5746-49F4-BD0F-C6C35337088A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7A2DFF15-5746-49F4-BD0F-C6C35337088A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7A2DFF15-5746-49F4-BD0F-C6C35337088A}.Release|Any CPU.Build.0 = Release|Any CPU + {A4241C1F-A53D-474C-9E4E-075054407E74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4241C1F-A53D-474C-9E4E-075054407E74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4241C1F-A53D-474C-9E4E-075054407E74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4241C1F-A53D-474C-9E4E-075054407E74}.Release|Any CPU.Build.0 = Release|Any CPU + {FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Release|Any CPU.Build.0 = Release|Any CPU + {85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Release|Any CPU.Build.0 = Release|Any CPU + {28FF4005-4467-4E36-92E7-DEA27DEB1519}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28FF4005-4467-4E36-92E7-DEA27DEB1519}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28FF4005-4467-4E36-92E7-DEA27DEB1519}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28FF4005-4467-4E36-92E7-DEA27DEB1519}.Release|Any CPU.Build.0 = Release|Any CPU + {1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A97F4B90-2591-4689-B1F8-5F21FE6D6CAE} + EndGlobalSection +EndGlobal diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/CHANGELOG.md b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/CHANGELOG.md new file mode 100644 index 000000000000..8b33f0fedccc --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/CHANGELOG.md @@ -0,0 +1,11 @@ +# Release History + +## 1.0.0-beta.1 (Unreleased) + +### Features Added + +### Breaking Changes + +### Bugs Fixed + +### Other Changes \ No newline at end of file diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/Directory.Build.props b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/Directory.Build.props new file mode 100644 index 000000000000..63bd836ad44b --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/Directory.Build.props @@ -0,0 +1,6 @@ + + + + diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/README.md b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/README.md new file mode 100644 index 000000000000..ab99941d030e --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/README.md @@ -0,0 +1,80 @@ +# Microsoft Azure ImpactReporting management client library for .NET + +**[Describe the service briefly first.]** + +This library follows the [new Azure SDK guidelines](https://azure.github.io/azure-sdk/general_introduction.html), and provides many core capabilities: + + - Support MSAL.NET, Azure.Identity is out of box for supporting MSAL.NET. + - Support [OpenTelemetry](https://opentelemetry.io/) for distributed tracing. + - HTTP pipeline with custom policies. + - Better error-handling. + - Support uniform telemetry across all languages. + +## Getting started + +### Install the package + +Install the Microsoft Azure ImpactReporting management library for .NET with [NuGet](https://www.nuget.org/): + +```dotnetcli +dotnet add package Azure.ResourceManager.ImpactReporting --prerelease +``` + +### Prerequisites + +* You must have an [Microsoft Azure subscription](https://azure.microsoft.com/free/dotnet/). + +### Authenticate the Client + +To create an authenticated client and start interacting with Microsoft Azure resources, see the [quickstart guide here](https://github.com/Azure/azure-sdk-for-net/blob/main/doc/dev/mgmt_quickstart.md). + +## Key concepts + +Key concepts of the Microsoft Azure SDK for .NET can be found [here](https://azure.github.io/azure-sdk/dotnet_introduction.html) + +## Documentation + +Documentation is available to help you learn how to use this package: + +- [Quickstart](https://github.com/Azure/azure-sdk-for-net/blob/main/doc/dev/mgmt_quickstart.md). +- [API References](https://learn.microsoft.com/dotnet/api/?view=azure-dotnet). +- [Authentication](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity/README.md). + +## Examples + +Code samples for using the management library for .NET can be found in the following locations +- [.NET Management Library Code Samples](https://aka.ms/azuresdk-net-mgmt-samples) + +## Troubleshooting + +- File an issue via [GitHub Issues](https://github.com/Azure/azure-sdk-for-net/issues). +- Check [previous questions](https://stackoverflow.com/questions/tagged/azure+.net) or ask new ones on Stack Overflow using Azure and .NET tags. + +## Next steps + +For more information about Microsoft Azure SDK, see [this website](https://azure.github.io/azure-sdk/). + +## Contributing + +For details on contributing to this repository, see the [contributing +guide][cg]. + +This project welcomes contributions and suggestions. Most contributions +require you to agree to a Contributor License Agreement (CLA) declaring +that you have the right to, and actually do, grant us the rights to use +your contribution. For details, visit . + +When you submit a pull request, a CLA-bot will automatically determine +whether you need to provide a CLA and decorate the PR appropriately +(for example, label, comment). Follow the instructions provided by the +bot. You'll only need to do this action once across all repositories +using our CLA. + +This project has adopted the [Microsoft Open Source Code of Conduct][coc]. For +more information, see the [Code of Conduct FAQ][coc_faq] or contact + with any other questions or comments. + + +[cg]: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/resourcemanager/Azure.ResourceManager/docs/CONTRIBUTING.md +[coc]: https://opensource.microsoft.com/codeofconduct/ +[coc_faq]: https://opensource.microsoft.com/codeofconduct/faq/ \ No newline at end of file diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/api/Azure.ResourceManager.ImpactReporting.net8.0.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/api/Azure.ResourceManager.ImpactReporting.net8.0.cs new file mode 100644 index 000000000000..4db467f25c36 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/api/Azure.ResourceManager.ImpactReporting.net8.0.cs @@ -0,0 +1,616 @@ +namespace Azure.ResourceManager.ImpactReporting +{ + public partial class ConnectorCollection : Azure.ResourceManager.ArmCollection, System.Collections.Generic.IAsyncEnumerable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + protected ConnectorCollection() { } + public virtual Azure.ResourceManager.ArmOperation CreateOrUpdate(Azure.WaitUntil waitUntil, string connectorName, Azure.ResourceManager.ImpactReporting.ConnectorData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> CreateOrUpdateAsync(Azure.WaitUntil waitUntil, string connectorName, Azure.ResourceManager.ImpactReporting.ConnectorData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Exists(string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> ExistsAsync(string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Pageable GetAll(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.AsyncPageable GetAllAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetAsync(string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.NullableResponse GetIfExists(string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetIfExistsAsync(string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + System.Collections.Generic.IAsyncEnumerator System.Collections.Generic.IAsyncEnumerable.GetAsyncEnumerator(System.Threading.CancellationToken cancellationToken) { throw null; } + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() { throw null; } + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; } + } + public partial class ConnectorData : Azure.ResourceManager.Models.ResourceData, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public ConnectorData() { } + public Azure.ResourceManager.ImpactReporting.Models.ConnectorProperties Properties { get { throw null; } set { } } + protected override void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.ConnectorData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.ConnectorData System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class ConnectorResource : Azure.ResourceManager.ArmResource, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public static readonly Azure.Core.ResourceType ResourceType; + protected ConnectorResource() { } + public virtual Azure.ResourceManager.ImpactReporting.ConnectorData Data { get { throw null; } } + public virtual bool HasData { get { throw null; } } + public static Azure.Core.ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string connectorName) { throw null; } + public virtual Azure.ResourceManager.ArmOperation Delete(Azure.WaitUntil waitUntil, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task DeleteAsync(Azure.WaitUntil waitUntil, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + Azure.ResourceManager.ImpactReporting.ConnectorData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.ConnectorData System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + public virtual Azure.Response Update(Azure.ResourceManager.ImpactReporting.Models.ConnectorPatch patch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> UpdateAsync(Azure.ResourceManager.ImpactReporting.Models.ConnectorPatch patch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + } + public partial class ImpactCategoryCollection : Azure.ResourceManager.ArmCollection + { + protected ImpactCategoryCollection() { } + public virtual Azure.Response Exists(string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> ExistsAsync(string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Pageable GetAll(string resourceType, string categoryName = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.AsyncPageable GetAllAsync(string resourceType, string categoryName = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetAsync(string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.NullableResponse GetIfExists(string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetIfExistsAsync(string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + } + public partial class ImpactCategoryData : Azure.ResourceManager.Models.ResourceData, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + internal ImpactCategoryData() { } + public Azure.ResourceManager.ImpactReporting.Models.ImpactCategoryProperties Properties { get { throw null; } } + protected override void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.ImpactCategoryData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.ImpactCategoryData System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class ImpactCategoryResource : Azure.ResourceManager.ArmResource, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public static readonly Azure.Core.ResourceType ResourceType; + protected ImpactCategoryResource() { } + public virtual Azure.ResourceManager.ImpactReporting.ImpactCategoryData Data { get { throw null; } } + public virtual bool HasData { get { throw null; } } + public static Azure.Core.ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string impactCategoryName) { throw null; } + public virtual Azure.Response Get(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + Azure.ResourceManager.ImpactReporting.ImpactCategoryData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.ImpactCategoryData System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public static partial class ImpactReportingExtensions + { + public static Azure.Response GetConnector(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static System.Threading.Tasks.Task> GetConnectorAsync(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static Azure.ResourceManager.ImpactReporting.ConnectorResource GetConnectorResource(this Azure.ResourceManager.ArmClient client, Azure.Core.ResourceIdentifier id) { throw null; } + public static Azure.ResourceManager.ImpactReporting.ConnectorCollection GetConnectors(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource) { throw null; } + public static Azure.ResourceManager.ImpactReporting.ImpactCategoryCollection GetImpactCategories(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource) { throw null; } + public static Azure.Response GetImpactCategory(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static System.Threading.Tasks.Task> GetImpactCategoryAsync(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static Azure.ResourceManager.ImpactReporting.ImpactCategoryResource GetImpactCategoryResource(this Azure.ResourceManager.ArmClient client, Azure.Core.ResourceIdentifier id) { throw null; } + public static Azure.ResourceManager.ImpactReporting.InsightResource GetInsightResource(this Azure.ResourceManager.ArmClient client, Azure.Core.ResourceIdentifier id) { throw null; } + public static Azure.Response GetWorkloadImpact(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static System.Threading.Tasks.Task> GetWorkloadImpactAsync(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static Azure.ResourceManager.ImpactReporting.WorkloadImpactResource GetWorkloadImpactResource(this Azure.ResourceManager.ArmClient client, Azure.Core.ResourceIdentifier id) { throw null; } + public static Azure.ResourceManager.ImpactReporting.WorkloadImpactCollection GetWorkloadImpacts(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource) { throw null; } + } + public partial class InsightCollection : Azure.ResourceManager.ArmCollection, System.Collections.Generic.IAsyncEnumerable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + protected InsightCollection() { } + public virtual Azure.ResourceManager.ArmOperation CreateOrUpdate(Azure.WaitUntil waitUntil, string insightName, Azure.ResourceManager.ImpactReporting.InsightData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> CreateOrUpdateAsync(Azure.WaitUntil waitUntil, string insightName, Azure.ResourceManager.ImpactReporting.InsightData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Exists(string insightName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> ExistsAsync(string insightName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(string insightName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Pageable GetAll(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.AsyncPageable GetAllAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetAsync(string insightName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.NullableResponse GetIfExists(string insightName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetIfExistsAsync(string insightName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + System.Collections.Generic.IAsyncEnumerator System.Collections.Generic.IAsyncEnumerable.GetAsyncEnumerator(System.Threading.CancellationToken cancellationToken) { throw null; } + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() { throw null; } + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; } + } + public partial class InsightData : Azure.ResourceManager.Models.ResourceData, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public InsightData() { } + public Azure.ResourceManager.ImpactReporting.Models.InsightProperties Properties { get { throw null; } set { } } + protected override void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.InsightData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.InsightData System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class InsightResource : Azure.ResourceManager.ArmResource, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public static readonly Azure.Core.ResourceType ResourceType; + protected InsightResource() { } + public virtual Azure.ResourceManager.ImpactReporting.InsightData Data { get { throw null; } } + public virtual bool HasData { get { throw null; } } + public static Azure.Core.ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string workloadImpactName, string insightName) { throw null; } + public virtual Azure.ResourceManager.ArmOperation Delete(Azure.WaitUntil waitUntil, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task DeleteAsync(Azure.WaitUntil waitUntil, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + Azure.ResourceManager.ImpactReporting.InsightData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.InsightData System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + public virtual Azure.ResourceManager.ArmOperation Update(Azure.WaitUntil waitUntil, Azure.ResourceManager.ImpactReporting.InsightData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> UpdateAsync(Azure.WaitUntil waitUntil, Azure.ResourceManager.ImpactReporting.InsightData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + } + public partial class WorkloadImpactCollection : Azure.ResourceManager.ArmCollection, System.Collections.Generic.IAsyncEnumerable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + protected WorkloadImpactCollection() { } + public virtual Azure.ResourceManager.ArmOperation CreateOrUpdate(Azure.WaitUntil waitUntil, string workloadImpactName, Azure.ResourceManager.ImpactReporting.WorkloadImpactData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> CreateOrUpdateAsync(Azure.WaitUntil waitUntil, string workloadImpactName, Azure.ResourceManager.ImpactReporting.WorkloadImpactData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Exists(string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> ExistsAsync(string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Pageable GetAll(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.AsyncPageable GetAllAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetAsync(string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.NullableResponse GetIfExists(string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetIfExistsAsync(string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + System.Collections.Generic.IAsyncEnumerator System.Collections.Generic.IAsyncEnumerable.GetAsyncEnumerator(System.Threading.CancellationToken cancellationToken) { throw null; } + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() { throw null; } + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; } + } + public partial class WorkloadImpactData : Azure.ResourceManager.Models.ResourceData, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public WorkloadImpactData() { } + public Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactProperties Properties { get { throw null; } set { } } + protected override void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.WorkloadImpactData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.WorkloadImpactData System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class WorkloadImpactResource : Azure.ResourceManager.ArmResource, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public static readonly Azure.Core.ResourceType ResourceType; + protected WorkloadImpactResource() { } + public virtual Azure.ResourceManager.ImpactReporting.WorkloadImpactData Data { get { throw null; } } + public virtual bool HasData { get { throw null; } } + public static Azure.Core.ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string workloadImpactName) { throw null; } + public virtual Azure.ResourceManager.ArmOperation Delete(Azure.WaitUntil waitUntil, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task DeleteAsync(Azure.WaitUntil waitUntil, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response GetInsight(string insightName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetInsightAsync(string insightName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.ResourceManager.ImpactReporting.InsightCollection GetInsights() { throw null; } + Azure.ResourceManager.ImpactReporting.WorkloadImpactData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.WorkloadImpactData System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + public virtual Azure.ResourceManager.ArmOperation Update(Azure.WaitUntil waitUntil, Azure.ResourceManager.ImpactReporting.WorkloadImpactData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> UpdateAsync(Azure.WaitUntil waitUntil, Azure.ResourceManager.ImpactReporting.WorkloadImpactData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + } +} +namespace Azure.ResourceManager.ImpactReporting.Mocking +{ + public partial class MockableImpactReportingArmClient : Azure.ResourceManager.ArmResource + { + protected MockableImpactReportingArmClient() { } + public virtual Azure.ResourceManager.ImpactReporting.ConnectorResource GetConnectorResource(Azure.Core.ResourceIdentifier id) { throw null; } + public virtual Azure.ResourceManager.ImpactReporting.ImpactCategoryResource GetImpactCategoryResource(Azure.Core.ResourceIdentifier id) { throw null; } + public virtual Azure.ResourceManager.ImpactReporting.InsightResource GetInsightResource(Azure.Core.ResourceIdentifier id) { throw null; } + public virtual Azure.ResourceManager.ImpactReporting.WorkloadImpactResource GetWorkloadImpactResource(Azure.Core.ResourceIdentifier id) { throw null; } + } + public partial class MockableImpactReportingSubscriptionResource : Azure.ResourceManager.ArmResource + { + protected MockableImpactReportingSubscriptionResource() { } + public virtual Azure.Response GetConnector(string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetConnectorAsync(string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.ResourceManager.ImpactReporting.ConnectorCollection GetConnectors() { throw null; } + public virtual Azure.ResourceManager.ImpactReporting.ImpactCategoryCollection GetImpactCategories() { throw null; } + public virtual Azure.Response GetImpactCategory(string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetImpactCategoryAsync(string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response GetWorkloadImpact(string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetWorkloadImpactAsync(string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.ResourceManager.ImpactReporting.WorkloadImpactCollection GetWorkloadImpacts() { throw null; } + } +} +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public static partial class ArmImpactReportingModelFactory + { + public static Azure.ResourceManager.ImpactReporting.ConnectorData ConnectorData(Azure.Core.ResourceIdentifier id = null, string name = null, Azure.Core.ResourceType resourceType = default(Azure.Core.ResourceType), Azure.ResourceManager.Models.SystemData systemData = null, Azure.ResourceManager.ImpactReporting.Models.ConnectorProperties properties = null) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.ConnectorProperties ConnectorProperties(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState? provisioningState = default(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState?), string connectorId = null, string tenantId = null, Azure.ResourceManager.ImpactReporting.Models.Platform connectorType = default(Azure.ResourceManager.ImpactReporting.Models.Platform), System.DateTimeOffset lastRunTimeStamp = default(System.DateTimeOffset)) { throw null; } + public static Azure.ResourceManager.ImpactReporting.ImpactCategoryData ImpactCategoryData(Azure.Core.ResourceIdentifier id = null, string name = null, Azure.Core.ResourceType resourceType = default(Azure.Core.ResourceType), Azure.ResourceManager.Models.SystemData systemData = null, Azure.ResourceManager.ImpactReporting.Models.ImpactCategoryProperties properties = null) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.ImpactCategoryProperties ImpactCategoryProperties(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState? provisioningState = default(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState?), string categoryId = null, string parentCategoryId = null, string description = null, System.Collections.Generic.IEnumerable requiredImpactProperties = null) { throw null; } + public static Azure.ResourceManager.ImpactReporting.InsightData InsightData(Azure.Core.ResourceIdentifier id = null, string name = null, Azure.Core.ResourceType resourceType = default(Azure.Core.ResourceType), Azure.ResourceManager.Models.SystemData systemData = null, Azure.ResourceManager.ImpactReporting.Models.InsightProperties properties = null) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.InsightProperties InsightProperties(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState? provisioningState = default(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState?), string category = null, string status = null, string eventId = null, string groupId = null, Azure.ResourceManager.ImpactReporting.Models.Content content = null, System.DateTimeOffset? eventOn = default(System.DateTimeOffset?), string insightUniqueId = null, Azure.ResourceManager.ImpactReporting.Models.ImpactDetails impact = null, Azure.ResourceManager.ImpactReporting.Models.InsightPropertiesAdditionalDetails additionalDetails = null) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.RequiredImpactProperties RequiredImpactProperties(string name = null, System.Collections.Generic.IEnumerable allowedValues = null) { throw null; } + public static Azure.ResourceManager.ImpactReporting.WorkloadImpactData WorkloadImpactData(Azure.Core.ResourceIdentifier id = null, string name = null, Azure.Core.ResourceType resourceType = default(Azure.Core.ResourceType), Azure.ResourceManager.Models.SystemData systemData = null, Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactProperties properties = null) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactProperties WorkloadImpactProperties(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState? provisioningState = default(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState?), System.DateTimeOffset startOn = default(System.DateTimeOffset), System.DateTimeOffset? endOn = default(System.DateTimeOffset?), string impactedResourceId = null, string impactUniqueId = null, System.DateTimeOffset? reportedTimeUtc = default(System.DateTimeOffset?), string impactCategory = null, string impactDescription = null, System.Collections.Generic.IEnumerable armCorrelationIds = null, System.Collections.Generic.IEnumerable performance = null, Azure.ResourceManager.ImpactReporting.Models.Connectivity connectivity = null, Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactPropertiesAdditionalProperties additionalProperties = null, Azure.ResourceManager.ImpactReporting.Models.ErrorDetailProperties errorDetails = null, Azure.ResourceManager.ImpactReporting.Models.Workload workload = null, string impactGroupId = null, Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel? confidenceLevel = default(Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel?), Azure.ResourceManager.ImpactReporting.Models.ClientIncidentDetails clientIncidentDetails = null) { throw null; } + } + public partial class ClientIncidentDetails : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public ClientIncidentDetails() { } + public string ClientIncidentId { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.IncidentSource? ClientIncidentSource { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ClientIncidentDetails System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ClientIncidentDetails System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct ConfidenceLevel : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public ConfidenceLevel(string value) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel High { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel Low { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel Medium { get { throw null; } } + public bool Equals(Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel other) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object obj) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static bool operator ==(Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel left, Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel right) { throw null; } + public static implicit operator Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel left, Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel right) { throw null; } + public override string ToString() { throw null; } + } + public partial class Connectivity : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public Connectivity() { } + public int? Port { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.Protocol? Protocol { get { throw null; } set { } } + public string SourceAzureResourceId { get { throw null; } set { } } + public string TargetAzureResourceId { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.Connectivity System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.Connectivity System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class ConnectorPatch : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public ConnectorPatch() { } + public Azure.ResourceManager.ImpactReporting.Models.Platform? ConnectorType { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ConnectorPatch System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ConnectorPatch System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class ConnectorProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public ConnectorProperties(string connectorId, string tenantId, Azure.ResourceManager.ImpactReporting.Models.Platform connectorType, System.DateTimeOffset lastRunTimeStamp) { } + public string ConnectorId { get { throw null; } } + public Azure.ResourceManager.ImpactReporting.Models.Platform ConnectorType { get { throw null; } set { } } + public System.DateTimeOffset LastRunTimeStamp { get { throw null; } } + public Azure.ResourceManager.ImpactReporting.Models.ProvisioningState? ProvisioningState { get { throw null; } } + public string TenantId { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ConnectorProperties System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ConnectorProperties System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class Content : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public Content(string title, string description) { } + public string Description { get { throw null; } set { } } + public string Title { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.Content System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.Content System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class ErrorDetailProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public ErrorDetailProperties() { } + public string ErrorCode { get { throw null; } set { } } + public string ErrorMessage { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ErrorDetailProperties System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ErrorDetailProperties System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class ExpectedValueRange : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public ExpectedValueRange(double min, double max) { } + public double Max { get { throw null; } set { } } + public double Min { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ExpectedValueRange System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ExpectedValueRange System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class ImpactCategoryProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + internal ImpactCategoryProperties() { } + public string CategoryId { get { throw null; } } + public string Description { get { throw null; } } + public string ParentCategoryId { get { throw null; } } + public Azure.ResourceManager.ImpactReporting.Models.ProvisioningState? ProvisioningState { get { throw null; } } + public System.Collections.Generic.IReadOnlyList RequiredImpactProperties { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ImpactCategoryProperties System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ImpactCategoryProperties System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class ImpactDetails : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public ImpactDetails(string impactedResourceId, System.DateTimeOffset startOn, string impactId) { } + public System.DateTimeOffset? EndOn { get { throw null; } set { } } + public string ImpactedResourceId { get { throw null; } set { } } + public string ImpactId { get { throw null; } set { } } + public System.DateTimeOffset StartOn { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ImpactDetails System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ImpactDetails System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct IncidentSource : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public IncidentSource(string value) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.IncidentSource AzureDevops { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.IncidentSource ICM { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.IncidentSource Jira { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.IncidentSource Other { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.IncidentSource ServiceNow { get { throw null; } } + public bool Equals(Azure.ResourceManager.ImpactReporting.Models.IncidentSource other) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object obj) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static bool operator ==(Azure.ResourceManager.ImpactReporting.Models.IncidentSource left, Azure.ResourceManager.ImpactReporting.Models.IncidentSource right) { throw null; } + public static implicit operator Azure.ResourceManager.ImpactReporting.Models.IncidentSource (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.ImpactReporting.Models.IncidentSource left, Azure.ResourceManager.ImpactReporting.Models.IncidentSource right) { throw null; } + public override string ToString() { throw null; } + } + public partial class InsightProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public InsightProperties(string category, Azure.ResourceManager.ImpactReporting.Models.Content content, string insightUniqueId, Azure.ResourceManager.ImpactReporting.Models.ImpactDetails impact) { } + public Azure.ResourceManager.ImpactReporting.Models.InsightPropertiesAdditionalDetails AdditionalDetails { get { throw null; } set { } } + public string Category { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.Content Content { get { throw null; } set { } } + public string EventId { get { throw null; } set { } } + public System.DateTimeOffset? EventOn { get { throw null; } set { } } + public string GroupId { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.ImpactDetails Impact { get { throw null; } set { } } + public string InsightUniqueId { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.ProvisioningState? ProvisioningState { get { throw null; } } + public string Status { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.InsightProperties System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.InsightProperties System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class InsightPropertiesAdditionalDetails : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public InsightPropertiesAdditionalDetails() { } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.InsightPropertiesAdditionalDetails System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.InsightPropertiesAdditionalDetails System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct MetricUnit : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public MetricUnit(string value) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit Bytes { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit ByteSeconds { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit BytesPerSecond { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit Cores { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit Count { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit CountPerSecond { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit MilliCores { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit MilliSeconds { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit NanoCores { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit Other { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit Percent { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit Seconds { get { throw null; } } + public bool Equals(Azure.ResourceManager.ImpactReporting.Models.MetricUnit other) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object obj) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static bool operator ==(Azure.ResourceManager.ImpactReporting.Models.MetricUnit left, Azure.ResourceManager.ImpactReporting.Models.MetricUnit right) { throw null; } + public static implicit operator Azure.ResourceManager.ImpactReporting.Models.MetricUnit (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.ImpactReporting.Models.MetricUnit left, Azure.ResourceManager.ImpactReporting.Models.MetricUnit right) { throw null; } + public override string ToString() { throw null; } + } + public partial class Performance : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public Performance() { } + public double? Actual { get { throw null; } set { } } + public double? Expected { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.ExpectedValueRange ExpectedValueRange { get { throw null; } set { } } + public string MetricName { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.MetricUnit? Unit { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.Performance System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.Performance System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct Platform : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public Platform(string value) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.Platform AzureMonitor { get { throw null; } } + public bool Equals(Azure.ResourceManager.ImpactReporting.Models.Platform other) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object obj) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static bool operator ==(Azure.ResourceManager.ImpactReporting.Models.Platform left, Azure.ResourceManager.ImpactReporting.Models.Platform right) { throw null; } + public static implicit operator Azure.ResourceManager.ImpactReporting.Models.Platform (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.ImpactReporting.Models.Platform left, Azure.ResourceManager.ImpactReporting.Models.Platform right) { throw null; } + public override string ToString() { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct Protocol : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public Protocol(string value) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.Protocol FTP { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Protocol HTTP { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Protocol HTTPS { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Protocol Other { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Protocol RDP { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Protocol SSH { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Protocol TCP { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Protocol UDP { get { throw null; } } + public bool Equals(Azure.ResourceManager.ImpactReporting.Models.Protocol other) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object obj) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static bool operator ==(Azure.ResourceManager.ImpactReporting.Models.Protocol left, Azure.ResourceManager.ImpactReporting.Models.Protocol right) { throw null; } + public static implicit operator Azure.ResourceManager.ImpactReporting.Models.Protocol (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.ImpactReporting.Models.Protocol left, Azure.ResourceManager.ImpactReporting.Models.Protocol right) { throw null; } + public override string ToString() { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct ProvisioningState : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public ProvisioningState(string value) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.ProvisioningState Canceled { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.ProvisioningState Failed { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.ProvisioningState Succeeded { get { throw null; } } + public bool Equals(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState other) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object obj) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static bool operator ==(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState left, Azure.ResourceManager.ImpactReporting.Models.ProvisioningState right) { throw null; } + public static implicit operator Azure.ResourceManager.ImpactReporting.Models.ProvisioningState (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState left, Azure.ResourceManager.ImpactReporting.Models.ProvisioningState right) { throw null; } + public override string ToString() { throw null; } + } + public partial class RequiredImpactProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + internal RequiredImpactProperties() { } + public System.Collections.Generic.IReadOnlyList AllowedValues { get { throw null; } } + public string Name { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.RequiredImpactProperties System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.RequiredImpactProperties System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct Toolset : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public Toolset(string value) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset Ansible { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset ARM { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset Chef { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset Other { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset Portal { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset Puppet { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset SDK { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset Shell { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset Terraform { get { throw null; } } + public bool Equals(Azure.ResourceManager.ImpactReporting.Models.Toolset other) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object obj) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static bool operator ==(Azure.ResourceManager.ImpactReporting.Models.Toolset left, Azure.ResourceManager.ImpactReporting.Models.Toolset right) { throw null; } + public static implicit operator Azure.ResourceManager.ImpactReporting.Models.Toolset (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.ImpactReporting.Models.Toolset left, Azure.ResourceManager.ImpactReporting.Models.Toolset right) { throw null; } + public override string ToString() { throw null; } + } + public partial class Workload : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public Workload() { } + public string Context { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.Toolset? Toolset { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.Workload System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.Workload System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class WorkloadImpactProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public WorkloadImpactProperties(System.DateTimeOffset startOn, string impactedResourceId, string impactCategory) { } + public Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactPropertiesAdditionalProperties AdditionalProperties { get { throw null; } set { } } + public System.Collections.Generic.IList ArmCorrelationIds { get { throw null; } } + public Azure.ResourceManager.ImpactReporting.Models.ClientIncidentDetails ClientIncidentDetails { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel? ConfidenceLevel { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.Connectivity Connectivity { get { throw null; } set { } } + public System.DateTimeOffset? EndOn { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.ErrorDetailProperties ErrorDetails { get { throw null; } set { } } + public string ImpactCategory { get { throw null; } set { } } + public string ImpactDescription { get { throw null; } set { } } + public string ImpactedResourceId { get { throw null; } set { } } + public string ImpactGroupId { get { throw null; } set { } } + public string ImpactUniqueId { get { throw null; } } + public System.Collections.Generic.IList Performance { get { throw null; } } + public Azure.ResourceManager.ImpactReporting.Models.ProvisioningState? ProvisioningState { get { throw null; } } + public System.DateTimeOffset? ReportedTimeUtc { get { throw null; } } + public System.DateTimeOffset StartOn { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.Workload Workload { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactProperties System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactProperties System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class WorkloadImpactPropertiesAdditionalProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public WorkloadImpactPropertiesAdditionalProperties() { } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactPropertiesAdditionalProperties System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactPropertiesAdditionalProperties System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/api/Azure.ResourceManager.ImpactReporting.netstandard2.0.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/api/Azure.ResourceManager.ImpactReporting.netstandard2.0.cs new file mode 100644 index 000000000000..4db467f25c36 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/api/Azure.ResourceManager.ImpactReporting.netstandard2.0.cs @@ -0,0 +1,616 @@ +namespace Azure.ResourceManager.ImpactReporting +{ + public partial class ConnectorCollection : Azure.ResourceManager.ArmCollection, System.Collections.Generic.IAsyncEnumerable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + protected ConnectorCollection() { } + public virtual Azure.ResourceManager.ArmOperation CreateOrUpdate(Azure.WaitUntil waitUntil, string connectorName, Azure.ResourceManager.ImpactReporting.ConnectorData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> CreateOrUpdateAsync(Azure.WaitUntil waitUntil, string connectorName, Azure.ResourceManager.ImpactReporting.ConnectorData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Exists(string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> ExistsAsync(string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Pageable GetAll(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.AsyncPageable GetAllAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetAsync(string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.NullableResponse GetIfExists(string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetIfExistsAsync(string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + System.Collections.Generic.IAsyncEnumerator System.Collections.Generic.IAsyncEnumerable.GetAsyncEnumerator(System.Threading.CancellationToken cancellationToken) { throw null; } + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() { throw null; } + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; } + } + public partial class ConnectorData : Azure.ResourceManager.Models.ResourceData, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public ConnectorData() { } + public Azure.ResourceManager.ImpactReporting.Models.ConnectorProperties Properties { get { throw null; } set { } } + protected override void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.ConnectorData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.ConnectorData System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class ConnectorResource : Azure.ResourceManager.ArmResource, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public static readonly Azure.Core.ResourceType ResourceType; + protected ConnectorResource() { } + public virtual Azure.ResourceManager.ImpactReporting.ConnectorData Data { get { throw null; } } + public virtual bool HasData { get { throw null; } } + public static Azure.Core.ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string connectorName) { throw null; } + public virtual Azure.ResourceManager.ArmOperation Delete(Azure.WaitUntil waitUntil, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task DeleteAsync(Azure.WaitUntil waitUntil, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + Azure.ResourceManager.ImpactReporting.ConnectorData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.ConnectorData System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + public virtual Azure.Response Update(Azure.ResourceManager.ImpactReporting.Models.ConnectorPatch patch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> UpdateAsync(Azure.ResourceManager.ImpactReporting.Models.ConnectorPatch patch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + } + public partial class ImpactCategoryCollection : Azure.ResourceManager.ArmCollection + { + protected ImpactCategoryCollection() { } + public virtual Azure.Response Exists(string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> ExistsAsync(string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Pageable GetAll(string resourceType, string categoryName = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.AsyncPageable GetAllAsync(string resourceType, string categoryName = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetAsync(string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.NullableResponse GetIfExists(string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetIfExistsAsync(string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + } + public partial class ImpactCategoryData : Azure.ResourceManager.Models.ResourceData, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + internal ImpactCategoryData() { } + public Azure.ResourceManager.ImpactReporting.Models.ImpactCategoryProperties Properties { get { throw null; } } + protected override void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.ImpactCategoryData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.ImpactCategoryData System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class ImpactCategoryResource : Azure.ResourceManager.ArmResource, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public static readonly Azure.Core.ResourceType ResourceType; + protected ImpactCategoryResource() { } + public virtual Azure.ResourceManager.ImpactReporting.ImpactCategoryData Data { get { throw null; } } + public virtual bool HasData { get { throw null; } } + public static Azure.Core.ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string impactCategoryName) { throw null; } + public virtual Azure.Response Get(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + Azure.ResourceManager.ImpactReporting.ImpactCategoryData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.ImpactCategoryData System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public static partial class ImpactReportingExtensions + { + public static Azure.Response GetConnector(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static System.Threading.Tasks.Task> GetConnectorAsync(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static Azure.ResourceManager.ImpactReporting.ConnectorResource GetConnectorResource(this Azure.ResourceManager.ArmClient client, Azure.Core.ResourceIdentifier id) { throw null; } + public static Azure.ResourceManager.ImpactReporting.ConnectorCollection GetConnectors(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource) { throw null; } + public static Azure.ResourceManager.ImpactReporting.ImpactCategoryCollection GetImpactCategories(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource) { throw null; } + public static Azure.Response GetImpactCategory(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static System.Threading.Tasks.Task> GetImpactCategoryAsync(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static Azure.ResourceManager.ImpactReporting.ImpactCategoryResource GetImpactCategoryResource(this Azure.ResourceManager.ArmClient client, Azure.Core.ResourceIdentifier id) { throw null; } + public static Azure.ResourceManager.ImpactReporting.InsightResource GetInsightResource(this Azure.ResourceManager.ArmClient client, Azure.Core.ResourceIdentifier id) { throw null; } + public static Azure.Response GetWorkloadImpact(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static System.Threading.Tasks.Task> GetWorkloadImpactAsync(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static Azure.ResourceManager.ImpactReporting.WorkloadImpactResource GetWorkloadImpactResource(this Azure.ResourceManager.ArmClient client, Azure.Core.ResourceIdentifier id) { throw null; } + public static Azure.ResourceManager.ImpactReporting.WorkloadImpactCollection GetWorkloadImpacts(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource) { throw null; } + } + public partial class InsightCollection : Azure.ResourceManager.ArmCollection, System.Collections.Generic.IAsyncEnumerable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + protected InsightCollection() { } + public virtual Azure.ResourceManager.ArmOperation CreateOrUpdate(Azure.WaitUntil waitUntil, string insightName, Azure.ResourceManager.ImpactReporting.InsightData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> CreateOrUpdateAsync(Azure.WaitUntil waitUntil, string insightName, Azure.ResourceManager.ImpactReporting.InsightData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Exists(string insightName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> ExistsAsync(string insightName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(string insightName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Pageable GetAll(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.AsyncPageable GetAllAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetAsync(string insightName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.NullableResponse GetIfExists(string insightName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetIfExistsAsync(string insightName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + System.Collections.Generic.IAsyncEnumerator System.Collections.Generic.IAsyncEnumerable.GetAsyncEnumerator(System.Threading.CancellationToken cancellationToken) { throw null; } + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() { throw null; } + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; } + } + public partial class InsightData : Azure.ResourceManager.Models.ResourceData, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public InsightData() { } + public Azure.ResourceManager.ImpactReporting.Models.InsightProperties Properties { get { throw null; } set { } } + protected override void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.InsightData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.InsightData System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class InsightResource : Azure.ResourceManager.ArmResource, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public static readonly Azure.Core.ResourceType ResourceType; + protected InsightResource() { } + public virtual Azure.ResourceManager.ImpactReporting.InsightData Data { get { throw null; } } + public virtual bool HasData { get { throw null; } } + public static Azure.Core.ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string workloadImpactName, string insightName) { throw null; } + public virtual Azure.ResourceManager.ArmOperation Delete(Azure.WaitUntil waitUntil, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task DeleteAsync(Azure.WaitUntil waitUntil, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + Azure.ResourceManager.ImpactReporting.InsightData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.InsightData System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + public virtual Azure.ResourceManager.ArmOperation Update(Azure.WaitUntil waitUntil, Azure.ResourceManager.ImpactReporting.InsightData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> UpdateAsync(Azure.WaitUntil waitUntil, Azure.ResourceManager.ImpactReporting.InsightData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + } + public partial class WorkloadImpactCollection : Azure.ResourceManager.ArmCollection, System.Collections.Generic.IAsyncEnumerable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + protected WorkloadImpactCollection() { } + public virtual Azure.ResourceManager.ArmOperation CreateOrUpdate(Azure.WaitUntil waitUntil, string workloadImpactName, Azure.ResourceManager.ImpactReporting.WorkloadImpactData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> CreateOrUpdateAsync(Azure.WaitUntil waitUntil, string workloadImpactName, Azure.ResourceManager.ImpactReporting.WorkloadImpactData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Exists(string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> ExistsAsync(string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Pageable GetAll(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.AsyncPageable GetAllAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetAsync(string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.NullableResponse GetIfExists(string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetIfExistsAsync(string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + System.Collections.Generic.IAsyncEnumerator System.Collections.Generic.IAsyncEnumerable.GetAsyncEnumerator(System.Threading.CancellationToken cancellationToken) { throw null; } + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() { throw null; } + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; } + } + public partial class WorkloadImpactData : Azure.ResourceManager.Models.ResourceData, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public WorkloadImpactData() { } + public Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactProperties Properties { get { throw null; } set { } } + protected override void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.WorkloadImpactData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.WorkloadImpactData System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class WorkloadImpactResource : Azure.ResourceManager.ArmResource, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public static readonly Azure.Core.ResourceType ResourceType; + protected WorkloadImpactResource() { } + public virtual Azure.ResourceManager.ImpactReporting.WorkloadImpactData Data { get { throw null; } } + public virtual bool HasData { get { throw null; } } + public static Azure.Core.ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string workloadImpactName) { throw null; } + public virtual Azure.ResourceManager.ArmOperation Delete(Azure.WaitUntil waitUntil, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task DeleteAsync(Azure.WaitUntil waitUntil, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response GetInsight(string insightName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetInsightAsync(string insightName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.ResourceManager.ImpactReporting.InsightCollection GetInsights() { throw null; } + Azure.ResourceManager.ImpactReporting.WorkloadImpactData System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.WorkloadImpactData System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + public virtual Azure.ResourceManager.ArmOperation Update(Azure.WaitUntil waitUntil, Azure.ResourceManager.ImpactReporting.WorkloadImpactData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> UpdateAsync(Azure.WaitUntil waitUntil, Azure.ResourceManager.ImpactReporting.WorkloadImpactData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + } +} +namespace Azure.ResourceManager.ImpactReporting.Mocking +{ + public partial class MockableImpactReportingArmClient : Azure.ResourceManager.ArmResource + { + protected MockableImpactReportingArmClient() { } + public virtual Azure.ResourceManager.ImpactReporting.ConnectorResource GetConnectorResource(Azure.Core.ResourceIdentifier id) { throw null; } + public virtual Azure.ResourceManager.ImpactReporting.ImpactCategoryResource GetImpactCategoryResource(Azure.Core.ResourceIdentifier id) { throw null; } + public virtual Azure.ResourceManager.ImpactReporting.InsightResource GetInsightResource(Azure.Core.ResourceIdentifier id) { throw null; } + public virtual Azure.ResourceManager.ImpactReporting.WorkloadImpactResource GetWorkloadImpactResource(Azure.Core.ResourceIdentifier id) { throw null; } + } + public partial class MockableImpactReportingSubscriptionResource : Azure.ResourceManager.ArmResource + { + protected MockableImpactReportingSubscriptionResource() { } + public virtual Azure.Response GetConnector(string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetConnectorAsync(string connectorName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.ResourceManager.ImpactReporting.ConnectorCollection GetConnectors() { throw null; } + public virtual Azure.ResourceManager.ImpactReporting.ImpactCategoryCollection GetImpactCategories() { throw null; } + public virtual Azure.Response GetImpactCategory(string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetImpactCategoryAsync(string impactCategoryName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response GetWorkloadImpact(string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetWorkloadImpactAsync(string workloadImpactName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.ResourceManager.ImpactReporting.WorkloadImpactCollection GetWorkloadImpacts() { throw null; } + } +} +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public static partial class ArmImpactReportingModelFactory + { + public static Azure.ResourceManager.ImpactReporting.ConnectorData ConnectorData(Azure.Core.ResourceIdentifier id = null, string name = null, Azure.Core.ResourceType resourceType = default(Azure.Core.ResourceType), Azure.ResourceManager.Models.SystemData systemData = null, Azure.ResourceManager.ImpactReporting.Models.ConnectorProperties properties = null) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.ConnectorProperties ConnectorProperties(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState? provisioningState = default(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState?), string connectorId = null, string tenantId = null, Azure.ResourceManager.ImpactReporting.Models.Platform connectorType = default(Azure.ResourceManager.ImpactReporting.Models.Platform), System.DateTimeOffset lastRunTimeStamp = default(System.DateTimeOffset)) { throw null; } + public static Azure.ResourceManager.ImpactReporting.ImpactCategoryData ImpactCategoryData(Azure.Core.ResourceIdentifier id = null, string name = null, Azure.Core.ResourceType resourceType = default(Azure.Core.ResourceType), Azure.ResourceManager.Models.SystemData systemData = null, Azure.ResourceManager.ImpactReporting.Models.ImpactCategoryProperties properties = null) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.ImpactCategoryProperties ImpactCategoryProperties(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState? provisioningState = default(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState?), string categoryId = null, string parentCategoryId = null, string description = null, System.Collections.Generic.IEnumerable requiredImpactProperties = null) { throw null; } + public static Azure.ResourceManager.ImpactReporting.InsightData InsightData(Azure.Core.ResourceIdentifier id = null, string name = null, Azure.Core.ResourceType resourceType = default(Azure.Core.ResourceType), Azure.ResourceManager.Models.SystemData systemData = null, Azure.ResourceManager.ImpactReporting.Models.InsightProperties properties = null) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.InsightProperties InsightProperties(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState? provisioningState = default(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState?), string category = null, string status = null, string eventId = null, string groupId = null, Azure.ResourceManager.ImpactReporting.Models.Content content = null, System.DateTimeOffset? eventOn = default(System.DateTimeOffset?), string insightUniqueId = null, Azure.ResourceManager.ImpactReporting.Models.ImpactDetails impact = null, Azure.ResourceManager.ImpactReporting.Models.InsightPropertiesAdditionalDetails additionalDetails = null) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.RequiredImpactProperties RequiredImpactProperties(string name = null, System.Collections.Generic.IEnumerable allowedValues = null) { throw null; } + public static Azure.ResourceManager.ImpactReporting.WorkloadImpactData WorkloadImpactData(Azure.Core.ResourceIdentifier id = null, string name = null, Azure.Core.ResourceType resourceType = default(Azure.Core.ResourceType), Azure.ResourceManager.Models.SystemData systemData = null, Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactProperties properties = null) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactProperties WorkloadImpactProperties(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState? provisioningState = default(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState?), System.DateTimeOffset startOn = default(System.DateTimeOffset), System.DateTimeOffset? endOn = default(System.DateTimeOffset?), string impactedResourceId = null, string impactUniqueId = null, System.DateTimeOffset? reportedTimeUtc = default(System.DateTimeOffset?), string impactCategory = null, string impactDescription = null, System.Collections.Generic.IEnumerable armCorrelationIds = null, System.Collections.Generic.IEnumerable performance = null, Azure.ResourceManager.ImpactReporting.Models.Connectivity connectivity = null, Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactPropertiesAdditionalProperties additionalProperties = null, Azure.ResourceManager.ImpactReporting.Models.ErrorDetailProperties errorDetails = null, Azure.ResourceManager.ImpactReporting.Models.Workload workload = null, string impactGroupId = null, Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel? confidenceLevel = default(Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel?), Azure.ResourceManager.ImpactReporting.Models.ClientIncidentDetails clientIncidentDetails = null) { throw null; } + } + public partial class ClientIncidentDetails : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public ClientIncidentDetails() { } + public string ClientIncidentId { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.IncidentSource? ClientIncidentSource { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ClientIncidentDetails System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ClientIncidentDetails System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct ConfidenceLevel : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public ConfidenceLevel(string value) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel High { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel Low { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel Medium { get { throw null; } } + public bool Equals(Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel other) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object obj) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static bool operator ==(Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel left, Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel right) { throw null; } + public static implicit operator Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel left, Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel right) { throw null; } + public override string ToString() { throw null; } + } + public partial class Connectivity : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public Connectivity() { } + public int? Port { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.Protocol? Protocol { get { throw null; } set { } } + public string SourceAzureResourceId { get { throw null; } set { } } + public string TargetAzureResourceId { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.Connectivity System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.Connectivity System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class ConnectorPatch : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public ConnectorPatch() { } + public Azure.ResourceManager.ImpactReporting.Models.Platform? ConnectorType { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ConnectorPatch System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ConnectorPatch System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class ConnectorProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public ConnectorProperties(string connectorId, string tenantId, Azure.ResourceManager.ImpactReporting.Models.Platform connectorType, System.DateTimeOffset lastRunTimeStamp) { } + public string ConnectorId { get { throw null; } } + public Azure.ResourceManager.ImpactReporting.Models.Platform ConnectorType { get { throw null; } set { } } + public System.DateTimeOffset LastRunTimeStamp { get { throw null; } } + public Azure.ResourceManager.ImpactReporting.Models.ProvisioningState? ProvisioningState { get { throw null; } } + public string TenantId { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ConnectorProperties System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ConnectorProperties System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class Content : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public Content(string title, string description) { } + public string Description { get { throw null; } set { } } + public string Title { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.Content System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.Content System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class ErrorDetailProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public ErrorDetailProperties() { } + public string ErrorCode { get { throw null; } set { } } + public string ErrorMessage { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ErrorDetailProperties System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ErrorDetailProperties System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class ExpectedValueRange : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public ExpectedValueRange(double min, double max) { } + public double Max { get { throw null; } set { } } + public double Min { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ExpectedValueRange System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ExpectedValueRange System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class ImpactCategoryProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + internal ImpactCategoryProperties() { } + public string CategoryId { get { throw null; } } + public string Description { get { throw null; } } + public string ParentCategoryId { get { throw null; } } + public Azure.ResourceManager.ImpactReporting.Models.ProvisioningState? ProvisioningState { get { throw null; } } + public System.Collections.Generic.IReadOnlyList RequiredImpactProperties { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ImpactCategoryProperties System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ImpactCategoryProperties System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class ImpactDetails : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public ImpactDetails(string impactedResourceId, System.DateTimeOffset startOn, string impactId) { } + public System.DateTimeOffset? EndOn { get { throw null; } set { } } + public string ImpactedResourceId { get { throw null; } set { } } + public string ImpactId { get { throw null; } set { } } + public System.DateTimeOffset StartOn { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ImpactDetails System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.ImpactDetails System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct IncidentSource : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public IncidentSource(string value) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.IncidentSource AzureDevops { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.IncidentSource ICM { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.IncidentSource Jira { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.IncidentSource Other { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.IncidentSource ServiceNow { get { throw null; } } + public bool Equals(Azure.ResourceManager.ImpactReporting.Models.IncidentSource other) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object obj) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static bool operator ==(Azure.ResourceManager.ImpactReporting.Models.IncidentSource left, Azure.ResourceManager.ImpactReporting.Models.IncidentSource right) { throw null; } + public static implicit operator Azure.ResourceManager.ImpactReporting.Models.IncidentSource (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.ImpactReporting.Models.IncidentSource left, Azure.ResourceManager.ImpactReporting.Models.IncidentSource right) { throw null; } + public override string ToString() { throw null; } + } + public partial class InsightProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public InsightProperties(string category, Azure.ResourceManager.ImpactReporting.Models.Content content, string insightUniqueId, Azure.ResourceManager.ImpactReporting.Models.ImpactDetails impact) { } + public Azure.ResourceManager.ImpactReporting.Models.InsightPropertiesAdditionalDetails AdditionalDetails { get { throw null; } set { } } + public string Category { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.Content Content { get { throw null; } set { } } + public string EventId { get { throw null; } set { } } + public System.DateTimeOffset? EventOn { get { throw null; } set { } } + public string GroupId { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.ImpactDetails Impact { get { throw null; } set { } } + public string InsightUniqueId { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.ProvisioningState? ProvisioningState { get { throw null; } } + public string Status { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.InsightProperties System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.InsightProperties System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class InsightPropertiesAdditionalDetails : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public InsightPropertiesAdditionalDetails() { } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.InsightPropertiesAdditionalDetails System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.InsightPropertiesAdditionalDetails System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct MetricUnit : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public MetricUnit(string value) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit Bytes { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit ByteSeconds { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit BytesPerSecond { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit Cores { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit Count { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit CountPerSecond { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit MilliCores { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit MilliSeconds { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit NanoCores { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit Other { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit Percent { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.MetricUnit Seconds { get { throw null; } } + public bool Equals(Azure.ResourceManager.ImpactReporting.Models.MetricUnit other) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object obj) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static bool operator ==(Azure.ResourceManager.ImpactReporting.Models.MetricUnit left, Azure.ResourceManager.ImpactReporting.Models.MetricUnit right) { throw null; } + public static implicit operator Azure.ResourceManager.ImpactReporting.Models.MetricUnit (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.ImpactReporting.Models.MetricUnit left, Azure.ResourceManager.ImpactReporting.Models.MetricUnit right) { throw null; } + public override string ToString() { throw null; } + } + public partial class Performance : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public Performance() { } + public double? Actual { get { throw null; } set { } } + public double? Expected { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.ExpectedValueRange ExpectedValueRange { get { throw null; } set { } } + public string MetricName { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.MetricUnit? Unit { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.Performance System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.Performance System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct Platform : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public Platform(string value) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.Platform AzureMonitor { get { throw null; } } + public bool Equals(Azure.ResourceManager.ImpactReporting.Models.Platform other) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object obj) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static bool operator ==(Azure.ResourceManager.ImpactReporting.Models.Platform left, Azure.ResourceManager.ImpactReporting.Models.Platform right) { throw null; } + public static implicit operator Azure.ResourceManager.ImpactReporting.Models.Platform (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.ImpactReporting.Models.Platform left, Azure.ResourceManager.ImpactReporting.Models.Platform right) { throw null; } + public override string ToString() { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct Protocol : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public Protocol(string value) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.Protocol FTP { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Protocol HTTP { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Protocol HTTPS { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Protocol Other { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Protocol RDP { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Protocol SSH { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Protocol TCP { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Protocol UDP { get { throw null; } } + public bool Equals(Azure.ResourceManager.ImpactReporting.Models.Protocol other) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object obj) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static bool operator ==(Azure.ResourceManager.ImpactReporting.Models.Protocol left, Azure.ResourceManager.ImpactReporting.Models.Protocol right) { throw null; } + public static implicit operator Azure.ResourceManager.ImpactReporting.Models.Protocol (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.ImpactReporting.Models.Protocol left, Azure.ResourceManager.ImpactReporting.Models.Protocol right) { throw null; } + public override string ToString() { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct ProvisioningState : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public ProvisioningState(string value) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.ProvisioningState Canceled { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.ProvisioningState Failed { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.ProvisioningState Succeeded { get { throw null; } } + public bool Equals(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState other) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object obj) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static bool operator ==(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState left, Azure.ResourceManager.ImpactReporting.Models.ProvisioningState right) { throw null; } + public static implicit operator Azure.ResourceManager.ImpactReporting.Models.ProvisioningState (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.ImpactReporting.Models.ProvisioningState left, Azure.ResourceManager.ImpactReporting.Models.ProvisioningState right) { throw null; } + public override string ToString() { throw null; } + } + public partial class RequiredImpactProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + internal RequiredImpactProperties() { } + public System.Collections.Generic.IReadOnlyList AllowedValues { get { throw null; } } + public string Name { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.RequiredImpactProperties System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.RequiredImpactProperties System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct Toolset : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public Toolset(string value) { throw null; } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset Ansible { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset ARM { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset Chef { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset Other { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset Portal { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset Puppet { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset SDK { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset Shell { get { throw null; } } + public static Azure.ResourceManager.ImpactReporting.Models.Toolset Terraform { get { throw null; } } + public bool Equals(Azure.ResourceManager.ImpactReporting.Models.Toolset other) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override bool Equals(object obj) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public override int GetHashCode() { throw null; } + public static bool operator ==(Azure.ResourceManager.ImpactReporting.Models.Toolset left, Azure.ResourceManager.ImpactReporting.Models.Toolset right) { throw null; } + public static implicit operator Azure.ResourceManager.ImpactReporting.Models.Toolset (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.ImpactReporting.Models.Toolset left, Azure.ResourceManager.ImpactReporting.Models.Toolset right) { throw null; } + public override string ToString() { throw null; } + } + public partial class Workload : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public Workload() { } + public string Context { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.Toolset? Toolset { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.Workload System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.Workload System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class WorkloadImpactProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public WorkloadImpactProperties(System.DateTimeOffset startOn, string impactedResourceId, string impactCategory) { } + public Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactPropertiesAdditionalProperties AdditionalProperties { get { throw null; } set { } } + public System.Collections.Generic.IList ArmCorrelationIds { get { throw null; } } + public Azure.ResourceManager.ImpactReporting.Models.ClientIncidentDetails ClientIncidentDetails { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.ConfidenceLevel? ConfidenceLevel { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.Connectivity Connectivity { get { throw null; } set { } } + public System.DateTimeOffset? EndOn { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.ErrorDetailProperties ErrorDetails { get { throw null; } set { } } + public string ImpactCategory { get { throw null; } set { } } + public string ImpactDescription { get { throw null; } set { } } + public string ImpactedResourceId { get { throw null; } set { } } + public string ImpactGroupId { get { throw null; } set { } } + public string ImpactUniqueId { get { throw null; } } + public System.Collections.Generic.IList Performance { get { throw null; } } + public Azure.ResourceManager.ImpactReporting.Models.ProvisioningState? ProvisioningState { get { throw null; } } + public System.DateTimeOffset? ReportedTimeUtc { get { throw null; } } + public System.DateTimeOffset StartOn { get { throw null; } set { } } + public Azure.ResourceManager.ImpactReporting.Models.Workload Workload { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactProperties System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactProperties System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } + public partial class WorkloadImpactPropertiesAdditionalProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public WorkloadImpactPropertiesAdditionalProperties() { } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactPropertiesAdditionalProperties System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.ImpactReporting.Models.WorkloadImpactPropertiesAdditionalProperties System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/assets.json b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/assets.json new file mode 100644 index 000000000000..547ee1975d7d --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/assets.json @@ -0,0 +1,7 @@ + +{ + "AssetsRepo": "Azure/azure-sdk-assets", + "AssetsRepoPrefixPath": "net", + "TagPrefix": "net/impactreporting/Azure.ResourceManager.ImpactReporting", + "Tag": "" +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Azure.ResourceManager.ImpactReporting.Samples.csproj b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Azure.ResourceManager.ImpactReporting.Samples.csproj new file mode 100644 index 000000000000..01724b6d9e57 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Azure.ResourceManager.ImpactReporting.Samples.csproj @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_ConnectorCollection.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_ConnectorCollection.cs new file mode 100644 index 000000000000..269ee514ecfb --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_ConnectorCollection.cs @@ -0,0 +1,191 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Identity; +using Azure.ResourceManager.ImpactReporting.Models; +using Azure.ResourceManager.Resources; +using NUnit.Framework; + +namespace Azure.ResourceManager.ImpactReporting.Samples +{ + public partial class Sample_ConnectorCollection + { + [Test] + [Ignore("Only validating compilation of examples")] + public async Task CreateOrUpdate_ConnectorsCreateOrUpdate() + { + // Generated from example definition: 2024-05-01-preview/Connectors_CreateOrUpdate.json + // this example is just showing the usage of "Connector_CreateOrUpdate" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this SubscriptionResource created on azure + // for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource + string subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId); + SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId); + + // get the collection of this ConnectorResource + ConnectorCollection collection = subscriptionResource.GetConnectors(); + + // invoke the operation + string connectorName = "testconnector1"; + ConnectorData data = new ConnectorData + { + Properties = new ConnectorProperties(null, null, Platform.AzureMonitor, default), + }; + ArmOperation lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, connectorName, data); + ConnectorResource result = lro.Value; + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + ConnectorData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Get_ConnectorsGet() + { + // Generated from example definition: 2024-05-01-preview/Connectors_Get.json + // this example is just showing the usage of "Connector_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this SubscriptionResource created on azure + // for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource + string subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId); + SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId); + + // get the collection of this ConnectorResource + ConnectorCollection collection = subscriptionResource.GetConnectors(); + + // invoke the operation + string connectorName = "testconnector1"; + ConnectorResource result = await collection.GetAsync(connectorName); + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + ConnectorData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task GetAll_ConnectorsListBySubscription() + { + // Generated from example definition: 2024-05-01-preview/Connectors_ListBySubscription.json + // this example is just showing the usage of "Connector_ListBySubscription" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this SubscriptionResource created on azure + // for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource + string subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId); + SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId); + + // get the collection of this ConnectorResource + ConnectorCollection collection = subscriptionResource.GetConnectors(); + + // invoke the operation and iterate over the result + await foreach (ConnectorResource item in collection.GetAllAsync()) + { + // the variable item is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + ConnectorData resourceData = item.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + Console.WriteLine("Succeeded"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Exists_ConnectorsGet() + { + // Generated from example definition: 2024-05-01-preview/Connectors_Get.json + // this example is just showing the usage of "Connector_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this SubscriptionResource created on azure + // for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource + string subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId); + SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId); + + // get the collection of this ConnectorResource + ConnectorCollection collection = subscriptionResource.GetConnectors(); + + // invoke the operation + string connectorName = "testconnector1"; + bool result = await collection.ExistsAsync(connectorName); + + Console.WriteLine($"Succeeded: {result}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task GetIfExists_ConnectorsGet() + { + // Generated from example definition: 2024-05-01-preview/Connectors_Get.json + // this example is just showing the usage of "Connector_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this SubscriptionResource created on azure + // for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource + string subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId); + SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId); + + // get the collection of this ConnectorResource + ConnectorCollection collection = subscriptionResource.GetConnectors(); + + // invoke the operation + string connectorName = "testconnector1"; + NullableResponse response = await collection.GetIfExistsAsync(connectorName); + ConnectorResource result = response.HasValue ? response.Value : null; + + if (result == null) + { + Console.WriteLine("Succeeded with null as result"); + } + else + { + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + ConnectorData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_ConnectorResource.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_ConnectorResource.cs new file mode 100644 index 000000000000..efc8966b25cf --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_ConnectorResource.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Identity; +using Azure.ResourceManager.ImpactReporting.Models; +using NUnit.Framework; + +namespace Azure.ResourceManager.ImpactReporting.Samples +{ + public partial class Sample_ConnectorResource + { + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Get_ConnectorsGet() + { + // Generated from example definition: 2024-05-01-preview/Connectors_Get.json + // this example is just showing the usage of "Connector_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this ConnectorResource created on azure + // for more information of creating ConnectorResource, please refer to the document of ConnectorResource + string subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + string connectorName = "testconnector1"; + ResourceIdentifier connectorResourceId = ConnectorResource.CreateResourceIdentifier(subscriptionId, connectorName); + ConnectorResource connector = client.GetConnectorResource(connectorResourceId); + + // invoke the operation + ConnectorResource result = await connector.GetAsync(); + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + ConnectorData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Delete_ConnectorsDelete() + { + // Generated from example definition: 2024-05-01-preview/Connectors_Delete.json + // this example is just showing the usage of "Connector_Delete" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this ConnectorResource created on azure + // for more information of creating ConnectorResource, please refer to the document of ConnectorResource + string subscriptionId = "8F74B371-8573-4773-9BDA-D546505BDB3A"; + string connectorName = "testconnector1"; + ResourceIdentifier connectorResourceId = ConnectorResource.CreateResourceIdentifier(subscriptionId, connectorName); + ConnectorResource connector = client.GetConnectorResource(connectorResourceId); + + // invoke the operation + await connector.DeleteAsync(WaitUntil.Completed); + + Console.WriteLine("Succeeded"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Update_ConnectorsUpdate() + { + // Generated from example definition: 2024-05-01-preview/Connectors_Update.json + // this example is just showing the usage of "Connector_Update" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this ConnectorResource created on azure + // for more information of creating ConnectorResource, please refer to the document of ConnectorResource + string subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + string connectorName = "testconnector1"; + ResourceIdentifier connectorResourceId = ConnectorResource.CreateResourceIdentifier(subscriptionId, connectorName); + ConnectorResource connector = client.GetConnectorResource(connectorResourceId); + + // invoke the operation + ConnectorPatch patch = new ConnectorPatch + { + ConnectorType = Platform.AzureMonitor, + }; + ConnectorResource result = await connector.UpdateAsync(patch); + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + ConnectorData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_ImpactCategoryCollection.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_ImpactCategoryCollection.cs new file mode 100644 index 000000000000..65a75ca469b4 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_ImpactCategoryCollection.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Identity; +using Azure.ResourceManager.Resources; +using NUnit.Framework; + +namespace Azure.ResourceManager.ImpactReporting.Samples +{ + public partial class Sample_ImpactCategoryCollection + { + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Get_GetWorkloadImpactResourceByName() + { + // Generated from example definition: 2024-05-01-preview/ImpactCategories_Get.json + // this example is just showing the usage of "ImpactCategory_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this SubscriptionResource created on azure + // for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId); + SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId); + + // get the collection of this ImpactCategoryResource + ImpactCategoryCollection collection = subscriptionResource.GetImpactCategories(); + + // invoke the operation + string impactCategoryName = "ARMOperation.Create"; + ImpactCategoryResource result = await collection.GetAsync(impactCategoryName); + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + ImpactCategoryData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task GetAll_GetImpactCategoriesListBySubscription() + { + // Generated from example definition: 2024-05-01-preview/ImpactCategories_ListBySubscription.json + // this example is just showing the usage of "ImpactCategory_ListBySubscription" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this SubscriptionResource created on azure + // for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId); + SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId); + + // get the collection of this ImpactCategoryResource + ImpactCategoryCollection collection = subscriptionResource.GetImpactCategories(); + + // invoke the operation and iterate over the result + string resourceType = "microsoft.compute/virtualmachines"; + await foreach (ImpactCategoryResource item in collection.GetAllAsync(resourceType)) + { + // the variable item is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + ImpactCategoryData resourceData = item.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + Console.WriteLine("Succeeded"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Exists_GetWorkloadImpactResourceByName() + { + // Generated from example definition: 2024-05-01-preview/ImpactCategories_Get.json + // this example is just showing the usage of "ImpactCategory_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this SubscriptionResource created on azure + // for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId); + SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId); + + // get the collection of this ImpactCategoryResource + ImpactCategoryCollection collection = subscriptionResource.GetImpactCategories(); + + // invoke the operation + string impactCategoryName = "ARMOperation.Create"; + bool result = await collection.ExistsAsync(impactCategoryName); + + Console.WriteLine($"Succeeded: {result}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task GetIfExists_GetWorkloadImpactResourceByName() + { + // Generated from example definition: 2024-05-01-preview/ImpactCategories_Get.json + // this example is just showing the usage of "ImpactCategory_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this SubscriptionResource created on azure + // for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId); + SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId); + + // get the collection of this ImpactCategoryResource + ImpactCategoryCollection collection = subscriptionResource.GetImpactCategories(); + + // invoke the operation + string impactCategoryName = "ARMOperation.Create"; + NullableResponse response = await collection.GetIfExistsAsync(impactCategoryName); + ImpactCategoryResource result = response.HasValue ? response.Value : null; + + if (result == null) + { + Console.WriteLine("Succeeded with null as result"); + } + else + { + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + ImpactCategoryData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_ImpactCategoryResource.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_ImpactCategoryResource.cs new file mode 100644 index 000000000000..1764be354dc9 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_ImpactCategoryResource.cs @@ -0,0 +1,47 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Identity; +using NUnit.Framework; + +namespace Azure.ResourceManager.ImpactReporting.Samples +{ + public partial class Sample_ImpactCategoryResource + { + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Get_GetWorkloadImpactResourceByName() + { + // Generated from example definition: 2024-05-01-preview/ImpactCategories_Get.json + // this example is just showing the usage of "ImpactCategory_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this ImpactCategoryResource created on azure + // for more information of creating ImpactCategoryResource, please refer to the document of ImpactCategoryResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string impactCategoryName = "ARMOperation.Create"; + ResourceIdentifier impactCategoryResourceId = ImpactCategoryResource.CreateResourceIdentifier(subscriptionId, impactCategoryName); + ImpactCategoryResource impactCategory = client.GetImpactCategoryResource(impactCategoryResourceId); + + // invoke the operation + ImpactCategoryResource result = await impactCategory.GetAsync(); + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + ImpactCategoryData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_InsightCollection.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_InsightCollection.cs new file mode 100644 index 000000000000..38c33592e5bf --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_InsightCollection.cs @@ -0,0 +1,405 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Identity; +using Azure.ResourceManager.ImpactReporting.Models; +using NUnit.Framework; + +namespace Azure.ResourceManager.ImpactReporting.Samples +{ + public partial class Sample_InsightCollection + { + [Test] + [Ignore("Only validating compilation of examples")] + public async Task CreateOrUpdate_CreatingAnInsight() + { + // Generated from example definition: 2024-05-01-preview/Insights_Create.json + // this example is just showing the usage of "Insight_Create" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this WorkloadImpactResource created on azure + // for more information of creating WorkloadImpactResource, please refer to the document of WorkloadImpactResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impactid22"; + ResourceIdentifier workloadImpactResourceId = WorkloadImpactResource.CreateResourceIdentifier(subscriptionId, workloadImpactName); + WorkloadImpactResource workloadImpact = client.GetWorkloadImpactResource(workloadImpactResourceId); + + // get the collection of this InsightResource + InsightCollection collection = workloadImpact.GetInsights(); + + // invoke the operation + string insightName = "insightId12"; + InsightData data = new InsightData + { + Properties = new InsightProperties("repair", new Content("Impact Has been correlated to an outage", "At 2018-11-08T00:00:00Z UTC, your services dependent on these resources VM1 may have experienced an issue.
We have identified an outage that affected these resources(s). You can look at outage information on NL2W-VCZ link.
"), "00000000-0000-0000-0000-000000000000", new ImpactDetails("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservername", DateTimeOffset.Parse("2023-06-15T01:00:00.009223Z"), "/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.Impact/workloadImpacts/impactid22")) + { + Status = "resolved", + EventOn = DateTimeOffset.Parse("2023-06-15T04:00:00.009223Z"), + }, + }; + ArmOperation lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, insightName, data); + InsightResource result = lro.Value; + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + InsightData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Get_GetInsightSampleForDiagnosticsCategory() + { + // Generated from example definition: 2024-05-01-preview/Insights_Get_diagnostics.json + // this example is just showing the usage of "Insight_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this WorkloadImpactResource created on azure + // for more information of creating WorkloadImpactResource, please refer to the document of WorkloadImpactResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impactid"; + ResourceIdentifier workloadImpactResourceId = WorkloadImpactResource.CreateResourceIdentifier(subscriptionId, workloadImpactName); + WorkloadImpactResource workloadImpact = client.GetWorkloadImpactResource(workloadImpactResourceId); + + // get the collection of this InsightResource + InsightCollection collection = workloadImpact.GetInsights(); + + // invoke the operation + string insightName = "insight1"; + InsightResource result = await collection.GetAsync(insightName); + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + InsightData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Get_GetInsightSampleForMitigationActionCategory() + { + // Generated from example definition: 2024-05-01-preview/Insights_Get_mitigationAction.json + // this example is just showing the usage of "Insight_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this WorkloadImpactResource created on azure + // for more information of creating WorkloadImpactResource, please refer to the document of WorkloadImpactResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impactId"; + ResourceIdentifier workloadImpactResourceId = WorkloadImpactResource.CreateResourceIdentifier(subscriptionId, workloadImpactName); + WorkloadImpactResource workloadImpact = client.GetWorkloadImpactResource(workloadImpactResourceId); + + // get the collection of this InsightResource + InsightCollection collection = workloadImpact.GetInsights(); + + // invoke the operation + string insightName = "HPCUASucceeded"; + InsightResource result = await collection.GetAsync(insightName); + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + InsightData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Get_GetInsightSampleForServiceHealthCategory() + { + // Generated from example definition: 2024-05-01-preview/Insights_Get_servicehealth.json + // this example is just showing the usage of "Insight_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this WorkloadImpactResource created on azure + // for more information of creating WorkloadImpactResource, please refer to the document of WorkloadImpactResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impactid"; + ResourceIdentifier workloadImpactResourceId = WorkloadImpactResource.CreateResourceIdentifier(subscriptionId, workloadImpactName); + WorkloadImpactResource workloadImpact = client.GetWorkloadImpactResource(workloadImpactResourceId); + + // get the collection of this InsightResource + InsightCollection collection = workloadImpact.GetInsights(); + + // invoke the operation + string insightName = "insightname"; + InsightResource result = await collection.GetAsync(insightName); + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + InsightData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task GetAll_ListInsightResourcesByWorkloadImpactName() + { + // Generated from example definition: 2024-05-01-preview/Insights_ListBySubscription.json + // this example is just showing the usage of "Insight_ListBySubscription" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this WorkloadImpactResource created on azure + // for more information of creating WorkloadImpactResource, please refer to the document of WorkloadImpactResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impactid22"; + ResourceIdentifier workloadImpactResourceId = WorkloadImpactResource.CreateResourceIdentifier(subscriptionId, workloadImpactName); + WorkloadImpactResource workloadImpact = client.GetWorkloadImpactResource(workloadImpactResourceId); + + // get the collection of this InsightResource + InsightCollection collection = workloadImpact.GetInsights(); + + // invoke the operation and iterate over the result + await foreach (InsightResource item in collection.GetAllAsync()) + { + // the variable item is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + InsightData resourceData = item.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + Console.WriteLine("Succeeded"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Exists_GetInsightSampleForDiagnosticsCategory() + { + // Generated from example definition: 2024-05-01-preview/Insights_Get_diagnostics.json + // this example is just showing the usage of "Insight_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this WorkloadImpactResource created on azure + // for more information of creating WorkloadImpactResource, please refer to the document of WorkloadImpactResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impactid"; + ResourceIdentifier workloadImpactResourceId = WorkloadImpactResource.CreateResourceIdentifier(subscriptionId, workloadImpactName); + WorkloadImpactResource workloadImpact = client.GetWorkloadImpactResource(workloadImpactResourceId); + + // get the collection of this InsightResource + InsightCollection collection = workloadImpact.GetInsights(); + + // invoke the operation + string insightName = "insight1"; + bool result = await collection.ExistsAsync(insightName); + + Console.WriteLine($"Succeeded: {result}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Exists_GetInsightSampleForMitigationActionCategory() + { + // Generated from example definition: 2024-05-01-preview/Insights_Get_mitigationAction.json + // this example is just showing the usage of "Insight_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this WorkloadImpactResource created on azure + // for more information of creating WorkloadImpactResource, please refer to the document of WorkloadImpactResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impactId"; + ResourceIdentifier workloadImpactResourceId = WorkloadImpactResource.CreateResourceIdentifier(subscriptionId, workloadImpactName); + WorkloadImpactResource workloadImpact = client.GetWorkloadImpactResource(workloadImpactResourceId); + + // get the collection of this InsightResource + InsightCollection collection = workloadImpact.GetInsights(); + + // invoke the operation + string insightName = "HPCUASucceeded"; + bool result = await collection.ExistsAsync(insightName); + + Console.WriteLine($"Succeeded: {result}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Exists_GetInsightSampleForServiceHealthCategory() + { + // Generated from example definition: 2024-05-01-preview/Insights_Get_servicehealth.json + // this example is just showing the usage of "Insight_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this WorkloadImpactResource created on azure + // for more information of creating WorkloadImpactResource, please refer to the document of WorkloadImpactResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impactid"; + ResourceIdentifier workloadImpactResourceId = WorkloadImpactResource.CreateResourceIdentifier(subscriptionId, workloadImpactName); + WorkloadImpactResource workloadImpact = client.GetWorkloadImpactResource(workloadImpactResourceId); + + // get the collection of this InsightResource + InsightCollection collection = workloadImpact.GetInsights(); + + // invoke the operation + string insightName = "insightname"; + bool result = await collection.ExistsAsync(insightName); + + Console.WriteLine($"Succeeded: {result}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task GetIfExists_GetInsightSampleForDiagnosticsCategory() + { + // Generated from example definition: 2024-05-01-preview/Insights_Get_diagnostics.json + // this example is just showing the usage of "Insight_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this WorkloadImpactResource created on azure + // for more information of creating WorkloadImpactResource, please refer to the document of WorkloadImpactResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impactid"; + ResourceIdentifier workloadImpactResourceId = WorkloadImpactResource.CreateResourceIdentifier(subscriptionId, workloadImpactName); + WorkloadImpactResource workloadImpact = client.GetWorkloadImpactResource(workloadImpactResourceId); + + // get the collection of this InsightResource + InsightCollection collection = workloadImpact.GetInsights(); + + // invoke the operation + string insightName = "insight1"; + NullableResponse response = await collection.GetIfExistsAsync(insightName); + InsightResource result = response.HasValue ? response.Value : null; + + if (result == null) + { + Console.WriteLine("Succeeded with null as result"); + } + else + { + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + InsightData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task GetIfExists_GetInsightSampleForMitigationActionCategory() + { + // Generated from example definition: 2024-05-01-preview/Insights_Get_mitigationAction.json + // this example is just showing the usage of "Insight_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this WorkloadImpactResource created on azure + // for more information of creating WorkloadImpactResource, please refer to the document of WorkloadImpactResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impactId"; + ResourceIdentifier workloadImpactResourceId = WorkloadImpactResource.CreateResourceIdentifier(subscriptionId, workloadImpactName); + WorkloadImpactResource workloadImpact = client.GetWorkloadImpactResource(workloadImpactResourceId); + + // get the collection of this InsightResource + InsightCollection collection = workloadImpact.GetInsights(); + + // invoke the operation + string insightName = "HPCUASucceeded"; + NullableResponse response = await collection.GetIfExistsAsync(insightName); + InsightResource result = response.HasValue ? response.Value : null; + + if (result == null) + { + Console.WriteLine("Succeeded with null as result"); + } + else + { + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + InsightData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task GetIfExists_GetInsightSampleForServiceHealthCategory() + { + // Generated from example definition: 2024-05-01-preview/Insights_Get_servicehealth.json + // this example is just showing the usage of "Insight_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this WorkloadImpactResource created on azure + // for more information of creating WorkloadImpactResource, please refer to the document of WorkloadImpactResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impactid"; + ResourceIdentifier workloadImpactResourceId = WorkloadImpactResource.CreateResourceIdentifier(subscriptionId, workloadImpactName); + WorkloadImpactResource workloadImpact = client.GetWorkloadImpactResource(workloadImpactResourceId); + + // get the collection of this InsightResource + InsightCollection collection = workloadImpact.GetInsights(); + + // invoke the operation + string insightName = "insightname"; + NullableResponse response = await collection.GetIfExistsAsync(insightName); + InsightResource result = response.HasValue ? response.Value : null; + + if (result == null) + { + Console.WriteLine("Succeeded with null as result"); + } + else + { + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + InsightData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_InsightResource.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_InsightResource.cs new file mode 100644 index 000000000000..a5e82a2cd079 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_InsightResource.cs @@ -0,0 +1,174 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Identity; +using Azure.ResourceManager.ImpactReporting.Models; +using NUnit.Framework; + +namespace Azure.ResourceManager.ImpactReporting.Samples +{ + public partial class Sample_InsightResource + { + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Get_GetInsightSampleForDiagnosticsCategory() + { + // Generated from example definition: 2024-05-01-preview/Insights_Get_diagnostics.json + // this example is just showing the usage of "Insight_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this InsightResource created on azure + // for more information of creating InsightResource, please refer to the document of InsightResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impactid"; + string insightName = "insight1"; + ResourceIdentifier insightResourceId = InsightResource.CreateResourceIdentifier(subscriptionId, workloadImpactName, insightName); + InsightResource insight = client.GetInsightResource(insightResourceId); + + // invoke the operation + InsightResource result = await insight.GetAsync(); + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + InsightData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Get_GetInsightSampleForMitigationActionCategory() + { + // Generated from example definition: 2024-05-01-preview/Insights_Get_mitigationAction.json + // this example is just showing the usage of "Insight_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this InsightResource created on azure + // for more information of creating InsightResource, please refer to the document of InsightResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impactId"; + string insightName = "HPCUASucceeded"; + ResourceIdentifier insightResourceId = InsightResource.CreateResourceIdentifier(subscriptionId, workloadImpactName, insightName); + InsightResource insight = client.GetInsightResource(insightResourceId); + + // invoke the operation + InsightResource result = await insight.GetAsync(); + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + InsightData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Get_GetInsightSampleForServiceHealthCategory() + { + // Generated from example definition: 2024-05-01-preview/Insights_Get_servicehealth.json + // this example is just showing the usage of "Insight_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this InsightResource created on azure + // for more information of creating InsightResource, please refer to the document of InsightResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impactid"; + string insightName = "insightname"; + ResourceIdentifier insightResourceId = InsightResource.CreateResourceIdentifier(subscriptionId, workloadImpactName, insightName); + InsightResource insight = client.GetInsightResource(insightResourceId); + + // invoke the operation + InsightResource result = await insight.GetAsync(); + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + InsightData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Delete_DeleteAnInsight() + { + // Generated from example definition: 2024-05-01-preview/Insights_Delete.json + // this example is just showing the usage of "Insight_Delete" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this InsightResource created on azure + // for more information of creating InsightResource, please refer to the document of InsightResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impactid22"; + string insightName = "insightId12"; + ResourceIdentifier insightResourceId = InsightResource.CreateResourceIdentifier(subscriptionId, workloadImpactName, insightName); + InsightResource insight = client.GetInsightResource(insightResourceId); + + // invoke the operation + await insight.DeleteAsync(WaitUntil.Completed); + + Console.WriteLine("Succeeded"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Update_CreatingAnInsight() + { + // Generated from example definition: 2024-05-01-preview/Insights_Create.json + // this example is just showing the usage of "Insight_Create" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this InsightResource created on azure + // for more information of creating InsightResource, please refer to the document of InsightResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impactid22"; + string insightName = "insightId12"; + ResourceIdentifier insightResourceId = InsightResource.CreateResourceIdentifier(subscriptionId, workloadImpactName, insightName); + InsightResource insight = client.GetInsightResource(insightResourceId); + + // invoke the operation + InsightData data = new InsightData + { + Properties = new InsightProperties("repair", new Content("Impact Has been correlated to an outage", "At 2018-11-08T00:00:00Z UTC, your services dependent on these resources VM1 may have experienced an issue.
We have identified an outage that affected these resources(s). You can look at outage information on NL2W-VCZ link.
"), "00000000-0000-0000-0000-000000000000", new ImpactDetails("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservername", DateTimeOffset.Parse("2023-06-15T01:00:00.009223Z"), "/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.Impact/workloadImpacts/impactid22")) + { + Status = "resolved", + EventOn = DateTimeOffset.Parse("2023-06-15T04:00:00.009223Z"), + }, + }; + ArmOperation lro = await insight.UpdateAsync(WaitUntil.Completed, data); + InsightResource result = lro.Value; + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + InsightData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_WorkloadImpactCollection.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_WorkloadImpactCollection.cs new file mode 100644 index 000000000000..19b1f97796f6 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_WorkloadImpactCollection.cs @@ -0,0 +1,369 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Identity; +using Azure.ResourceManager.ImpactReporting.Models; +using Azure.ResourceManager.Resources; +using NUnit.Framework; + +namespace Azure.ResourceManager.ImpactReporting.Samples +{ + public partial class Sample_WorkloadImpactCollection + { + [Test] + [Ignore("Only validating compilation of examples")] + public async Task CreateOrUpdate_ReportingArmOperationFailure() + { + // Generated from example definition: 2024-05-01-preview/WorkloadArmOperation_create.json + // this example is just showing the usage of "WorkloadImpact_Create" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this SubscriptionResource created on azure + // for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId); + SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId); + + // get the collection of this WorkloadImpactResource + WorkloadImpactCollection collection = subscriptionResource.GetWorkloadImpacts(); + + // invoke the operation + string workloadImpactName = "impact-002"; + WorkloadImpactData data = new WorkloadImpactData + { + Properties = new WorkloadImpactProperties(DateTimeOffset.Parse("2022-06-15T05:59:46.6517821Z"), "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", "ArmOperation") + { + ImpactDescription = "deletion of resource failed", + ArmCorrelationIds = { "00000000-0000-0000-0000-000000000000" }, + Workload = new Workload + { + Context = "webapp/scenario1", + Toolset = Toolset.Other, + }, + ClientIncidentDetails = new ClientIncidentDetails + { + ClientIncidentId = "AA123", + ClientIncidentSource = IncidentSource.Jira, + }, + }, + }; + ArmOperation lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, workloadImpactName, data); + WorkloadImpactResource result = lro.Value; + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + WorkloadImpactData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task CreateOrUpdate_ReportingAvailabilityRelatedImpact() + { + // Generated from example definition: 2024-05-01-preview/WorkloadAvailability_Create.json + // this example is just showing the usage of "WorkloadImpact_Create" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this SubscriptionResource created on azure + // for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId); + SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId); + + // get the collection of this WorkloadImpactResource + WorkloadImpactCollection collection = subscriptionResource.GetWorkloadImpacts(); + + // invoke the operation + string workloadImpactName = "impact-002"; + WorkloadImpactData data = new WorkloadImpactData + { + Properties = new WorkloadImpactProperties(DateTimeOffset.Parse("2022-06-15T05:59:46.6517821Z"), "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", "Availability") + { + ImpactDescription = "read calls failed", + Workload = new Workload + { + Context = "webapp/scenario1", + Toolset = Toolset.Other, + }, + ClientIncidentDetails = new ClientIncidentDetails + { + ClientIncidentId = "AA123", + ClientIncidentSource = IncidentSource.Jira, + }, + }, + }; + ArmOperation lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, workloadImpactName, data); + WorkloadImpactResource result = lro.Value; + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + WorkloadImpactData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task CreateOrUpdate_ReportingAConnectivityImpact() + { + // Generated from example definition: 2024-05-01-preview/WorkloadConnectivityImpact_Create.json + // this example is just showing the usage of "WorkloadImpact_Create" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this SubscriptionResource created on azure + // for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId); + SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId); + + // get the collection of this WorkloadImpactResource + WorkloadImpactCollection collection = subscriptionResource.GetWorkloadImpacts(); + + // invoke the operation + string workloadImpactName = "impact-001"; + WorkloadImpactData data = new WorkloadImpactData + { + Properties = new WorkloadImpactProperties(DateTimeOffset.Parse("2022-06-15T05:59:46.6517821Z"), "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", "Resource.Connectivity") + { + ImpactDescription = "conection failure", + Connectivity = new Connectivity + { + Protocol = Protocol.TCP, + Port = 1443, + SourceAzureResourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm1", + TargetAzureResourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm2", + }, + Workload = new Workload + { + Context = "webapp/scenario1", + Toolset = Toolset.Other, + }, + ClientIncidentDetails = new ClientIncidentDetails + { + ClientIncidentId = "AA123", + ClientIncidentSource = IncidentSource.Jira, + }, + }, + }; + ArmOperation lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, workloadImpactName, data); + WorkloadImpactResource result = lro.Value; + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + WorkloadImpactData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task CreateOrUpdate_ReportingPerformanceRelatedImpact() + { + // Generated from example definition: 2024-05-01-preview/WorkloadPerformance_Create.json + // this example is just showing the usage of "WorkloadImpact_Create" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this SubscriptionResource created on azure + // for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId); + SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId); + + // get the collection of this WorkloadImpactResource + WorkloadImpactCollection collection = subscriptionResource.GetWorkloadImpacts(); + + // invoke the operation + string workloadImpactName = "impact-002"; + WorkloadImpactData data = new WorkloadImpactData + { + Properties = new WorkloadImpactProperties(DateTimeOffset.Parse("2022-06-15T05:59:46.6517821Z"), "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", "Resource.Performance") + { + ImpactDescription = "high cpu utilization", + Performance = {new Performance +{ +MetricName = "CPU", +Expected = 60, +Actual = 90, +Unit = new MetricUnit("garbage"), +}}, + Workload = new Workload + { + Context = "webapp/scenario1", + Toolset = Toolset.Other, + }, + ClientIncidentDetails = new ClientIncidentDetails + { + ClientIncidentId = "AA123", + ClientIncidentSource = IncidentSource.Jira, + }, + }, + }; + ArmOperation lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, workloadImpactName, data); + WorkloadImpactResource result = lro.Value; + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + WorkloadImpactData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Get_GetWorkloadImpactResourceByNameExample() + { + // Generated from example definition: 2024-05-01-preview/WorkloadImpact_Get.json + // this example is just showing the usage of "WorkloadImpact_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this SubscriptionResource created on azure + // for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId); + SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId); + + // get the collection of this WorkloadImpactResource + WorkloadImpactCollection collection = subscriptionResource.GetWorkloadImpacts(); + + // invoke the operation + string workloadImpactName = "impact-001"; + WorkloadImpactResource result = await collection.GetAsync(workloadImpactName); + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + WorkloadImpactData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task GetAll_ListWorkloadImpactResourcesBySubscription() + { + // Generated from example definition: 2024-05-01-preview/WorkloadImpacts_ListBySubscription.json + // this example is just showing the usage of "WorkloadImpact_ListBySubscription" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this SubscriptionResource created on azure + // for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId); + SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId); + + // get the collection of this WorkloadImpactResource + WorkloadImpactCollection collection = subscriptionResource.GetWorkloadImpacts(); + + // invoke the operation and iterate over the result + await foreach (WorkloadImpactResource item in collection.GetAllAsync()) + { + // the variable item is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + WorkloadImpactData resourceData = item.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + Console.WriteLine("Succeeded"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Exists_GetWorkloadImpactResourceByNameExample() + { + // Generated from example definition: 2024-05-01-preview/WorkloadImpact_Get.json + // this example is just showing the usage of "WorkloadImpact_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this SubscriptionResource created on azure + // for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId); + SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId); + + // get the collection of this WorkloadImpactResource + WorkloadImpactCollection collection = subscriptionResource.GetWorkloadImpacts(); + + // invoke the operation + string workloadImpactName = "impact-001"; + bool result = await collection.ExistsAsync(workloadImpactName); + + Console.WriteLine($"Succeeded: {result}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task GetIfExists_GetWorkloadImpactResourceByNameExample() + { + // Generated from example definition: 2024-05-01-preview/WorkloadImpact_Get.json + // this example is just showing the usage of "WorkloadImpact_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this SubscriptionResource created on azure + // for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId); + SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId); + + // get the collection of this WorkloadImpactResource + WorkloadImpactCollection collection = subscriptionResource.GetWorkloadImpacts(); + + // invoke the operation + string workloadImpactName = "impact-001"; + NullableResponse response = await collection.GetIfExistsAsync(workloadImpactName); + WorkloadImpactResource result = response.HasValue ? response.Value : null; + + if (result == null) + { + Console.WriteLine("Succeeded with null as result"); + } + else + { + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + WorkloadImpactData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_WorkloadImpactResource.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_WorkloadImpactResource.cs new file mode 100644 index 000000000000..fe3aabf62911 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/samples/Generated/Samples/Sample_WorkloadImpactResource.cs @@ -0,0 +1,276 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Identity; +using Azure.ResourceManager.ImpactReporting.Models; +using NUnit.Framework; + +namespace Azure.ResourceManager.ImpactReporting.Samples +{ + public partial class Sample_WorkloadImpactResource + { + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Get_GetWorkloadImpactResourceByNameExample() + { + // Generated from example definition: 2024-05-01-preview/WorkloadImpact_Get.json + // this example is just showing the usage of "WorkloadImpact_Get" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this WorkloadImpactResource created on azure + // for more information of creating WorkloadImpactResource, please refer to the document of WorkloadImpactResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impact-001"; + ResourceIdentifier workloadImpactResourceId = WorkloadImpactResource.CreateResourceIdentifier(subscriptionId, workloadImpactName); + WorkloadImpactResource workloadImpact = client.GetWorkloadImpactResource(workloadImpactResourceId); + + // invoke the operation + WorkloadImpactResource result = await workloadImpact.GetAsync(); + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + WorkloadImpactData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Delete_DeleteWorkloadImpactResourceByNameExample() + { + // Generated from example definition: 2024-05-01-preview/WorkloadImpact_Delete.json + // this example is just showing the usage of "WorkloadImpact_Delete" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this WorkloadImpactResource created on azure + // for more information of creating WorkloadImpactResource, please refer to the document of WorkloadImpactResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impact-001"; + ResourceIdentifier workloadImpactResourceId = WorkloadImpactResource.CreateResourceIdentifier(subscriptionId, workloadImpactName); + WorkloadImpactResource workloadImpact = client.GetWorkloadImpactResource(workloadImpactResourceId); + + // invoke the operation + await workloadImpact.DeleteAsync(WaitUntil.Completed); + + Console.WriteLine("Succeeded"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Update_ReportingArmOperationFailure() + { + // Generated from example definition: 2024-05-01-preview/WorkloadArmOperation_create.json + // this example is just showing the usage of "WorkloadImpact_Create" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this WorkloadImpactResource created on azure + // for more information of creating WorkloadImpactResource, please refer to the document of WorkloadImpactResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impact-002"; + ResourceIdentifier workloadImpactResourceId = WorkloadImpactResource.CreateResourceIdentifier(subscriptionId, workloadImpactName); + WorkloadImpactResource workloadImpact = client.GetWorkloadImpactResource(workloadImpactResourceId); + + // invoke the operation + WorkloadImpactData data = new WorkloadImpactData + { + Properties = new WorkloadImpactProperties(DateTimeOffset.Parse("2022-06-15T05:59:46.6517821Z"), "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", "ArmOperation") + { + ImpactDescription = "deletion of resource failed", + ArmCorrelationIds = { "00000000-0000-0000-0000-000000000000" }, + Workload = new Workload + { + Context = "webapp/scenario1", + Toolset = Toolset.Other, + }, + ClientIncidentDetails = new ClientIncidentDetails + { + ClientIncidentId = "AA123", + ClientIncidentSource = IncidentSource.Jira, + }, + }, + }; + ArmOperation lro = await workloadImpact.UpdateAsync(WaitUntil.Completed, data); + WorkloadImpactResource result = lro.Value; + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + WorkloadImpactData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Update_ReportingAvailabilityRelatedImpact() + { + // Generated from example definition: 2024-05-01-preview/WorkloadAvailability_Create.json + // this example is just showing the usage of "WorkloadImpact_Create" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this WorkloadImpactResource created on azure + // for more information of creating WorkloadImpactResource, please refer to the document of WorkloadImpactResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impact-002"; + ResourceIdentifier workloadImpactResourceId = WorkloadImpactResource.CreateResourceIdentifier(subscriptionId, workloadImpactName); + WorkloadImpactResource workloadImpact = client.GetWorkloadImpactResource(workloadImpactResourceId); + + // invoke the operation + WorkloadImpactData data = new WorkloadImpactData + { + Properties = new WorkloadImpactProperties(DateTimeOffset.Parse("2022-06-15T05:59:46.6517821Z"), "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", "Availability") + { + ImpactDescription = "read calls failed", + Workload = new Workload + { + Context = "webapp/scenario1", + Toolset = Toolset.Other, + }, + ClientIncidentDetails = new ClientIncidentDetails + { + ClientIncidentId = "AA123", + ClientIncidentSource = IncidentSource.Jira, + }, + }, + }; + ArmOperation lro = await workloadImpact.UpdateAsync(WaitUntil.Completed, data); + WorkloadImpactResource result = lro.Value; + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + WorkloadImpactData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Update_ReportingAConnectivityImpact() + { + // Generated from example definition: 2024-05-01-preview/WorkloadConnectivityImpact_Create.json + // this example is just showing the usage of "WorkloadImpact_Create" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this WorkloadImpactResource created on azure + // for more information of creating WorkloadImpactResource, please refer to the document of WorkloadImpactResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impact-001"; + ResourceIdentifier workloadImpactResourceId = WorkloadImpactResource.CreateResourceIdentifier(subscriptionId, workloadImpactName); + WorkloadImpactResource workloadImpact = client.GetWorkloadImpactResource(workloadImpactResourceId); + + // invoke the operation + WorkloadImpactData data = new WorkloadImpactData + { + Properties = new WorkloadImpactProperties(DateTimeOffset.Parse("2022-06-15T05:59:46.6517821Z"), "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", "Resource.Connectivity") + { + ImpactDescription = "conection failure", + Connectivity = new Connectivity + { + Protocol = Protocol.TCP, + Port = 1443, + SourceAzureResourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm1", + TargetAzureResourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm2", + }, + Workload = new Workload + { + Context = "webapp/scenario1", + Toolset = Toolset.Other, + }, + ClientIncidentDetails = new ClientIncidentDetails + { + ClientIncidentId = "AA123", + ClientIncidentSource = IncidentSource.Jira, + }, + }, + }; + ArmOperation lro = await workloadImpact.UpdateAsync(WaitUntil.Completed, data); + WorkloadImpactResource result = lro.Value; + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + WorkloadImpactData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Update_ReportingPerformanceRelatedImpact() + { + // Generated from example definition: 2024-05-01-preview/WorkloadPerformance_Create.json + // this example is just showing the usage of "WorkloadImpact_Create" operation, for the dependent resources, they will have to be created separately. + + // get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line + TokenCredential cred = new DefaultAzureCredential(); + // authenticate your client + ArmClient client = new ArmClient(cred); + + // this example assumes you already have this WorkloadImpactResource created on azure + // for more information of creating WorkloadImpactResource, please refer to the document of WorkloadImpactResource + string subscriptionId = "00000000-0000-0000-0000-000000000000"; + string workloadImpactName = "impact-002"; + ResourceIdentifier workloadImpactResourceId = WorkloadImpactResource.CreateResourceIdentifier(subscriptionId, workloadImpactName); + WorkloadImpactResource workloadImpact = client.GetWorkloadImpactResource(workloadImpactResourceId); + + // invoke the operation + WorkloadImpactData data = new WorkloadImpactData + { + Properties = new WorkloadImpactProperties(DateTimeOffset.Parse("2022-06-15T05:59:46.6517821Z"), "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", "Resource.Performance") + { + ImpactDescription = "high cpu utilization", + Performance = {new Performance +{ +MetricName = "CPU", +Expected = 60, +Actual = 90, +Unit = new MetricUnit("garbage"), +}}, + Workload = new Workload + { + Context = "webapp/scenario1", + Toolset = Toolset.Other, + }, + ClientIncidentDetails = new ClientIncidentDetails + { + ClientIncidentId = "AA123", + ClientIncidentSource = IncidentSource.Jira, + }, + }, + }; + ArmOperation lro = await workloadImpact.UpdateAsync(WaitUntil.Completed, data); + WorkloadImpactResource result = lro.Value; + + // the variable result is a resource, you could call other operations on this instance as well + // but just for demo, we get its data from this resource instance + WorkloadImpactData resourceData = result.Data; + // for demo we just print out the id + Console.WriteLine($"Succeeded on id: {resourceData.Id}"); + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Azure.ResourceManager.ImpactReporting.csproj b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Azure.ResourceManager.ImpactReporting.csproj new file mode 100644 index 000000000000..5a6d51438445 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Azure.ResourceManager.ImpactReporting.csproj @@ -0,0 +1,8 @@ + + + Azure Resource Manager client SDK for Azure resource provider ImpactReporting. + 1.0.0-beta.1 + azure;management;arm;resource manager;impactreporting + Azure.ResourceManager.ImpactReporting + + diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ArmImpactReportingModelFactory.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ArmImpactReportingModelFactory.cs new file mode 100644 index 000000000000..b3c9fbc3798b --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ArmImpactReportingModelFactory.cs @@ -0,0 +1,213 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using Azure.Core; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// Model factory for models. + public static partial class ArmImpactReportingModelFactory + { + /// Initializes a new instance of . + /// The id. + /// The name. + /// The resourceType. + /// The systemData. + /// The resource-specific properties for this resource. + /// A new instance for mocking. + public static ConnectorData ConnectorData(ResourceIdentifier id = null, string name = null, ResourceType resourceType = default, SystemData systemData = null, ConnectorProperties properties = null) + { + return new ConnectorData( + id, + name, + resourceType, + systemData, + properties, + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// Resource provisioning state. + /// unique id of the connector. + /// tenant id of this connector. + /// connector type. + /// last run time stamp of this connector in UTC time zone. + /// A new instance for mocking. + public static ConnectorProperties ConnectorProperties(ProvisioningState? provisioningState = null, string connectorId = null, string tenantId = null, Platform connectorType = default, DateTimeOffset lastRunTimeStamp = default) + { + return new ConnectorProperties( + provisioningState, + connectorId, + tenantId, + connectorType, + lastRunTimeStamp, + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The id. + /// The name. + /// The resourceType. + /// The systemData. + /// The resource-specific properties for this resource. + /// A new instance for mocking. + public static InsightData InsightData(ResourceIdentifier id = null, string name = null, ResourceType resourceType = default, SystemData systemData = null, InsightProperties properties = null) + { + return new InsightData( + id, + name, + resourceType, + systemData, + properties, + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// Resource provisioning state. + /// category of the insight. + /// status of the insight. example resolved, repaired, other. + /// Identifier of the event that has been correlated with this insight. This can be used to aggregate insights for the same event. + /// Identifier that can be used to group similar insights. + /// Contains title & description for the insight. + /// Time of the event, which has been correlated the impact. + /// unique id of the insight. + /// details of of the impact for which insight has been generated. + /// additional details of the insight. + /// A new instance for mocking. + public static InsightProperties InsightProperties(ProvisioningState? provisioningState = null, string category = null, string status = null, string eventId = null, string groupId = null, Content content = null, DateTimeOffset? eventOn = null, string insightUniqueId = null, ImpactDetails impact = null, InsightPropertiesAdditionalDetails additionalDetails = null) + { + return new InsightProperties( + provisioningState, + category, + status, + eventId, + groupId, + content, + eventOn, + insightUniqueId, + impact, + additionalDetails, + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The id. + /// The name. + /// The resourceType. + /// The systemData. + /// The resource-specific properties for this resource. + /// A new instance for mocking. + public static ImpactCategoryData ImpactCategoryData(ResourceIdentifier id = null, string name = null, ResourceType resourceType = default, SystemData systemData = null, ImpactCategoryProperties properties = null) + { + return new ImpactCategoryData( + id, + name, + resourceType, + systemData, + properties, + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// Resource provisioning state. + /// Unique ID of the category. + /// Unique ID of the parent category. + /// Description of the category. + /// The workloadImpact properties which are required when reporting with the impact category. + /// A new instance for mocking. + public static ImpactCategoryProperties ImpactCategoryProperties(ProvisioningState? provisioningState = null, string categoryId = null, string parentCategoryId = null, string description = null, IEnumerable requiredImpactProperties = null) + { + requiredImpactProperties ??= new List(); + + return new ImpactCategoryProperties( + provisioningState, + categoryId, + parentCategoryId, + description, + requiredImpactProperties?.ToList(), + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// Name of the property. + /// Allowed values values for the property. + /// A new instance for mocking. + public static RequiredImpactProperties RequiredImpactProperties(string name = null, IEnumerable allowedValues = null) + { + allowedValues ??= new List(); + + return new RequiredImpactProperties(name, allowedValues?.ToList(), serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The id. + /// The name. + /// The resourceType. + /// The systemData. + /// The resource-specific properties for this resource. + /// A new instance for mocking. + public static WorkloadImpactData WorkloadImpactData(ResourceIdentifier id = null, string name = null, ResourceType resourceType = default, SystemData systemData = null, WorkloadImpactProperties properties = null) + { + return new WorkloadImpactData( + id, + name, + resourceType, + systemData, + properties, + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// Resource provisioning state. + /// Time at which impact was observed. + /// Time at which impact has ended. + /// Azure resource id of the impacted resource. + /// Unique ID of the impact (UUID). + /// Time at which impact is reported. + /// Category of the impact, details can found from /impactCategories API. + /// A detailed description of the impact. + /// The ARM correlation ids, this is important field for control plane related impacts. + /// Details about performance issue. Applicable for performance impacts. + /// Details about connectivity issue. Applicable when root resource causing the issue is not identified. For example, when a VM is impacted due to a network issue, the impacted resource is identified as the VM, but the root cause is the network. In such cases, the connectivity field will have the details about the network issue. + /// Additional fields related to impact, applicable fields per resource type are list under /impactCategories API. + /// ARM error code and error message associated with the impact. + /// Information about the impacted workload. + /// Use this field to group impacts. + /// Degree of confidence on the impact being a platform issue. + /// Client incident details ex: incidentId , incident source. + /// A new instance for mocking. + public static WorkloadImpactProperties WorkloadImpactProperties(ProvisioningState? provisioningState = null, DateTimeOffset startOn = default, DateTimeOffset? endOn = null, string impactedResourceId = null, string impactUniqueId = null, DateTimeOffset? reportedTimeUtc = null, string impactCategory = null, string impactDescription = null, IEnumerable armCorrelationIds = null, IEnumerable performance = null, Connectivity connectivity = null, WorkloadImpactPropertiesAdditionalProperties additionalProperties = null, ErrorDetailProperties errorDetails = null, Workload workload = null, string impactGroupId = null, ConfidenceLevel? confidenceLevel = null, ClientIncidentDetails clientIncidentDetails = null) + { + armCorrelationIds ??= new List(); + performance ??= new List(); + + return new WorkloadImpactProperties( + provisioningState, + startOn, + endOn, + impactedResourceId, + impactUniqueId, + reportedTimeUtc, + impactCategory, + impactDescription, + armCorrelationIds?.ToList(), + performance?.ToList(), + connectivity, + additionalProperties, + errorDetails, + workload, + impactGroupId, + confidenceLevel, + clientIncidentDetails, + serializedAdditionalRawData: null); + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorCollection.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorCollection.cs new file mode 100644 index 000000000000..259c35fa239e --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorCollection.cs @@ -0,0 +1,494 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Threading; +using System.Threading.Tasks; +using Autorest.CSharp.Core; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.ImpactReporting +{ + /// + /// A class representing a collection of and their operations. + /// Each in the collection will belong to the same instance of . + /// To get a instance call the GetConnectors method from an instance of . + /// + public partial class ConnectorCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _connectorClientDiagnostics; + private readonly ConnectorsRestOperations _connectorRestClient; + + /// Initializes a new instance of the class for mocking. + protected ConnectorCollection() + { + } + + /// Initializes a new instance of the class. + /// The client parameters to use in these operations. + /// The identifier of the parent resource that is the target of operations. + internal ConnectorCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + _connectorClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.ImpactReporting", ConnectorResource.ResourceType.Namespace, Diagnostics); + TryGetApiVersion(ConnectorResource.ResourceType, out string connectorApiVersion); + _connectorRestClient = new ConnectorsRestOperations(Pipeline, Diagnostics.ApplicationId, Endpoint, connectorApiVersion); +#if DEBUG + ValidateResourceId(Id); +#endif + } + + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != SubscriptionResource.ResourceType) + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "Invalid resource type {0} expected {1}", id.ResourceType, SubscriptionResource.ResourceType), nameof(id)); + } + + /// + /// Create a Connector + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_CreateOrUpdate + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the connector. + /// Resource create parameters. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// or is null. + public virtual async Task> CreateOrUpdateAsync(WaitUntil waitUntil, string connectorName, ConnectorData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(connectorName, nameof(connectorName)); + Argument.AssertNotNull(data, nameof(data)); + + using var scope = _connectorClientDiagnostics.CreateScope("ConnectorCollection.CreateOrUpdate"); + scope.Start(); + try + { + var response = await _connectorRestClient.CreateOrUpdateAsync(Id.SubscriptionId, connectorName, data, cancellationToken).ConfigureAwait(false); + var operation = new ImpactReportingArmOperation(new ConnectorOperationSource(Client), _connectorClientDiagnostics, Pipeline, _connectorRestClient.CreateCreateOrUpdateRequest(Id.SubscriptionId, connectorName, data).Request, response, OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Create a Connector + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_CreateOrUpdate + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the connector. + /// Resource create parameters. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// or is null. + public virtual ArmOperation CreateOrUpdate(WaitUntil waitUntil, string connectorName, ConnectorData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(connectorName, nameof(connectorName)); + Argument.AssertNotNull(data, nameof(data)); + + using var scope = _connectorClientDiagnostics.CreateScope("ConnectorCollection.CreateOrUpdate"); + scope.Start(); + try + { + var response = _connectorRestClient.CreateOrUpdate(Id.SubscriptionId, connectorName, data, cancellationToken); + var operation = new ImpactReportingArmOperation(new ConnectorOperationSource(Client), _connectorClientDiagnostics, Pipeline, _connectorRestClient.CreateCreateOrUpdateRequest(Id.SubscriptionId, connectorName, data).Request, response, OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + operation.WaitForCompletion(cancellationToken); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Connector + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The name of the connector. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual async Task> GetAsync(string connectorName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(connectorName, nameof(connectorName)); + + using var scope = _connectorClientDiagnostics.CreateScope("ConnectorCollection.Get"); + scope.Start(); + try + { + var response = await _connectorRestClient.GetAsync(Id.SubscriptionId, connectorName, cancellationToken).ConfigureAwait(false); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new ConnectorResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Connector + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The name of the connector. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual Response Get(string connectorName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(connectorName, nameof(connectorName)); + + using var scope = _connectorClientDiagnostics.CreateScope("ConnectorCollection.Get"); + scope.Start(); + try + { + var response = _connectorRestClient.Get(Id.SubscriptionId, connectorName, cancellationToken); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new ConnectorResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// List Connector resources by subscription ID + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors + /// + /// + /// Operation Id + /// Connector_ListBySubscription + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + /// An async collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetAllAsync(CancellationToken cancellationToken = default) + { + HttpMessage FirstPageRequest(int? pageSizeHint) => _connectorRestClient.CreateListBySubscriptionRequest(Id.SubscriptionId); + HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => _connectorRestClient.CreateListBySubscriptionNextPageRequest(nextLink, Id.SubscriptionId); + return GeneratorPageableHelpers.CreateAsyncPageable(FirstPageRequest, NextPageRequest, e => new ConnectorResource(Client, ConnectorData.DeserializeConnectorData(e)), _connectorClientDiagnostics, Pipeline, "ConnectorCollection.GetAll", "value", "nextLink", cancellationToken); + } + + /// + /// List Connector resources by subscription ID + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors + /// + /// + /// Operation Id + /// Connector_ListBySubscription + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetAll(CancellationToken cancellationToken = default) + { + HttpMessage FirstPageRequest(int? pageSizeHint) => _connectorRestClient.CreateListBySubscriptionRequest(Id.SubscriptionId); + HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => _connectorRestClient.CreateListBySubscriptionNextPageRequest(nextLink, Id.SubscriptionId); + return GeneratorPageableHelpers.CreatePageable(FirstPageRequest, NextPageRequest, e => new ConnectorResource(Client, ConnectorData.DeserializeConnectorData(e)), _connectorClientDiagnostics, Pipeline, "ConnectorCollection.GetAll", "value", "nextLink", cancellationToken); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The name of the connector. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual async Task> ExistsAsync(string connectorName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(connectorName, nameof(connectorName)); + + using var scope = _connectorClientDiagnostics.CreateScope("ConnectorCollection.Exists"); + scope.Start(); + try + { + var response = await _connectorRestClient.GetAsync(Id.SubscriptionId, connectorName, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The name of the connector. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual Response Exists(string connectorName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(connectorName, nameof(connectorName)); + + using var scope = _connectorClientDiagnostics.CreateScope("ConnectorCollection.Exists"); + scope.Start(); + try + { + var response = _connectorRestClient.Get(Id.SubscriptionId, connectorName, cancellationToken: cancellationToken); + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The name of the connector. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual async Task> GetIfExistsAsync(string connectorName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(connectorName, nameof(connectorName)); + + using var scope = _connectorClientDiagnostics.CreateScope("ConnectorCollection.GetIfExists"); + scope.Start(); + try + { + var response = await _connectorRestClient.GetAsync(Id.SubscriptionId, connectorName, cancellationToken: cancellationToken).ConfigureAwait(false); + if (response.Value == null) + return new NoValueResponse(response.GetRawResponse()); + return Response.FromValue(new ConnectorResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The name of the connector. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual NullableResponse GetIfExists(string connectorName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(connectorName, nameof(connectorName)); + + using var scope = _connectorClientDiagnostics.CreateScope("ConnectorCollection.GetIfExists"); + scope.Start(); + try + { + var response = _connectorRestClient.Get(Id.SubscriptionId, connectorName, cancellationToken: cancellationToken); + if (response.Value == null) + return new NoValueResponse(response.GetRawResponse()); + return Response.FromValue(new ConnectorResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IAsyncEnumerator IAsyncEnumerable.GetAsyncEnumerator(CancellationToken cancellationToken) + { + return GetAllAsync(cancellationToken: cancellationToken).GetAsyncEnumerator(cancellationToken); + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorData.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorData.Serialization.cs new file mode 100644 index 000000000000..900752318bfa --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorData.Serialization.cs @@ -0,0 +1,155 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; +using Azure.ResourceManager.ImpactReporting.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.ImpactReporting +{ + public partial class ConnectorData : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ConnectorData)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + ConnectorData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ConnectorData)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeConnectorData(document.RootElement, options); + } + + internal static ConnectorData DeserializeConnectorData(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ConnectorProperties properties = default; + ResourceIdentifier id = default; + string name = default; + ResourceType type = default; + SystemData systemData = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("properties"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = ConnectorProperties.DeserializeConnectorProperties(property.Value, options); + continue; + } + if (property.NameEquals("id"u8)) + { + id = new ResourceIdentifier(property.Value.GetString()); + continue; + } + if (property.NameEquals("name"u8)) + { + name = property.Value.GetString(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = new ResourceType(property.Value.GetString()); + continue; + } + if (property.NameEquals("systemData"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = JsonSerializer.Deserialize(property.Value.GetRawText()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ConnectorData( + id, + name, + type, + systemData, + properties, + serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ConnectorData)} does not support writing '{options.Format}' format."); + } + } + + ConnectorData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeConnectorData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ConnectorData)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorData.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorData.cs new file mode 100644 index 000000000000..b2d1ae438890 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorData.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.ImpactReporting.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.ImpactReporting +{ + /// + /// A class representing the Connector data model. + /// A connector is a resource that can be used to proactively report impacts against workloads in Azure to Microsoft. + /// + public partial class ConnectorData : ResourceData + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + public ConnectorData() + { + } + + /// Initializes a new instance of . + /// The id. + /// The name. + /// The resourceType. + /// The systemData. + /// The resource-specific properties for this resource. + /// Keeps track of any properties unknown to the library. + internal ConnectorData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, ConnectorProperties properties, IDictionary serializedAdditionalRawData) : base(id, name, resourceType, systemData) + { + Properties = properties; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The resource-specific properties for this resource. + public ConnectorProperties Properties { get; set; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorResource.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorResource.Serialization.cs new file mode 100644 index 000000000000..9234dc158038 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorResource.Serialization.cs @@ -0,0 +1,26 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace Azure.ResourceManager.ImpactReporting +{ + public partial class ConnectorResource : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + ConnectorData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => ((IJsonModel)Data).Create(ref reader, options); + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options); + + ConnectorData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options); + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => ((IPersistableModel)Data).GetFormatFromOptions(options); + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorResource.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorResource.cs new file mode 100644 index 000000000000..45fb32d37f5e --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ConnectorResource.cs @@ -0,0 +1,343 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Globalization; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.ImpactReporting.Models; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.ImpactReporting +{ + /// + /// A Class representing a Connector along with the instance operations that can be performed on it. + /// If you have a you can construct a + /// from an instance of using the GetConnectorResource method. + /// Otherwise you can get one from its parent resource using the GetConnector method. + /// + public partial class ConnectorResource : ArmResource + { + /// Generate the resource identifier of a instance. + /// The subscriptionId. + /// The connectorName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string connectorName) + { + var resourceId = $"/subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName}"; + return new ResourceIdentifier(resourceId); + } + + private readonly ClientDiagnostics _connectorClientDiagnostics; + private readonly ConnectorsRestOperations _connectorRestClient; + private readonly ConnectorData _data; + + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Impact/connectors"; + + /// Initializes a new instance of the class for mocking. + protected ConnectorResource() + { + } + + /// Initializes a new instance of the class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal ConnectorResource(ArmClient client, ConnectorData data) : this(client, data.Id) + { + HasData = true; + _data = data; + } + + /// Initializes a new instance of the class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal ConnectorResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + _connectorClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.ImpactReporting", ResourceType.Namespace, Diagnostics); + TryGetApiVersion(ResourceType, out string connectorApiVersion); + _connectorRestClient = new ConnectorsRestOperations(Pipeline, Diagnostics.ApplicationId, Endpoint, connectorApiVersion); +#if DEBUG + ValidateResourceId(Id); +#endif + } + + /// Gets whether or not the current instance has data. + public virtual bool HasData { get; } + + /// Gets the data representing this Feature. + /// Throws if there is no data loaded in the current instance. + public virtual ConnectorData Data + { + get + { + if (!HasData) + throw new InvalidOperationException("The current instance does not have data, you must call Get first."); + return _data; + } + } + + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceType) + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "Invalid resource type {0} expected {1}", id.ResourceType, ResourceType), nameof(id)); + } + + /// + /// Get a Connector + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using var scope = _connectorClientDiagnostics.CreateScope("ConnectorResource.Get"); + scope.Start(); + try + { + var response = await _connectorRestClient.GetAsync(Id.SubscriptionId, Id.Name, cancellationToken).ConfigureAwait(false); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new ConnectorResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Connector + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using var scope = _connectorClientDiagnostics.CreateScope("ConnectorResource.Get"); + scope.Start(); + try + { + var response = _connectorRestClient.Get(Id.SubscriptionId, Id.Name, cancellationToken); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new ConnectorResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a Connector + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_Delete + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual async Task DeleteAsync(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using var scope = _connectorClientDiagnostics.CreateScope("ConnectorResource.Delete"); + scope.Start(); + try + { + var response = await _connectorRestClient.DeleteAsync(Id.SubscriptionId, Id.Name, cancellationToken).ConfigureAwait(false); + var uri = _connectorRestClient.CreateDeleteRequestUri(Id.SubscriptionId, Id.Name); + var rehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(RequestMethod.Delete, uri.ToUri(), uri.ToString(), "None", null, OperationFinalStateVia.OriginalUri.ToString()); + var operation = new ImpactReportingArmOperation(response, rehydrationToken); + if (waitUntil == WaitUntil.Completed) + await operation.WaitForCompletionResponseAsync(cancellationToken).ConfigureAwait(false); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a Connector + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_Delete + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual ArmOperation Delete(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using var scope = _connectorClientDiagnostics.CreateScope("ConnectorResource.Delete"); + scope.Start(); + try + { + var response = _connectorRestClient.Delete(Id.SubscriptionId, Id.Name, cancellationToken); + var uri = _connectorRestClient.CreateDeleteRequestUri(Id.SubscriptionId, Id.Name); + var rehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(RequestMethod.Delete, uri.ToUri(), uri.ToString(), "None", null, OperationFinalStateVia.OriginalUri.ToString()); + var operation = new ImpactReportingArmOperation(response, rehydrationToken); + if (waitUntil == WaitUntil.Completed) + operation.WaitForCompletionResponse(cancellationToken); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a Connector + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_Update + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual async Task> UpdateAsync(ConnectorPatch patch, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(patch, nameof(patch)); + + using var scope = _connectorClientDiagnostics.CreateScope("ConnectorResource.Update"); + scope.Start(); + try + { + var response = await _connectorRestClient.UpdateAsync(Id.SubscriptionId, Id.Name, patch, cancellationToken).ConfigureAwait(false); + return Response.FromValue(new ConnectorResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a Connector + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_Update + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual Response Update(ConnectorPatch patch, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(patch, nameof(patch)); + + using var scope = _connectorClientDiagnostics.CreateScope("ConnectorResource.Update"); + scope.Start(); + try + { + var response = _connectorRestClient.Update(Id.SubscriptionId, Id.Name, patch, cancellationToken); + return Response.FromValue(new ConnectorResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Extensions/ImpactReportingExtensions.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Extensions/ImpactReportingExtensions.cs new file mode 100644 index 000000000000..63e82bb6e2b0 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Extensions/ImpactReportingExtensions.cs @@ -0,0 +1,385 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; +using Azure.ResourceManager.ImpactReporting.Mocking; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.ImpactReporting +{ + /// A class to add extension methods to Azure.ResourceManager.ImpactReporting. + public static partial class ImpactReportingExtensions + { + private static MockableImpactReportingArmClient GetMockableImpactReportingArmClient(ArmClient client) + { + return client.GetCachedClient(client0 => new MockableImpactReportingArmClient(client0)); + } + + private static MockableImpactReportingSubscriptionResource GetMockableImpactReportingSubscriptionResource(ArmResource resource) + { + return resource.GetCachedClient(client => new MockableImpactReportingSubscriptionResource(client, resource.Id)); + } + + /// + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// You can use to create a from its components. + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// The resource ID of the resource to get. + /// is null. + /// Returns a object. + public static WorkloadImpactResource GetWorkloadImpactResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableImpactReportingArmClient(client).GetWorkloadImpactResource(id); + } + + /// + /// Gets an object representing an along with the instance operations that can be performed on it but with no data. + /// You can use to create an from its components. + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// The resource ID of the resource to get. + /// is null. + /// Returns a object. + public static ImpactCategoryResource GetImpactCategoryResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableImpactReportingArmClient(client).GetImpactCategoryResource(id); + } + + /// + /// Gets an object representing an along with the instance operations that can be performed on it but with no data. + /// You can use to create an from its components. + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// The resource ID of the resource to get. + /// is null. + /// Returns a object. + public static InsightResource GetInsightResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableImpactReportingArmClient(client).GetInsightResource(id); + } + + /// + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// You can use to create a from its components. + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// The resource ID of the resource to get. + /// is null. + /// Returns a object. + public static ConnectorResource GetConnectorResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableImpactReportingArmClient(client).GetConnectorResource(id); + } + + /// + /// Gets a collection of WorkloadImpactResources in the SubscriptionResource. + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// is null. + /// An object representing collection of WorkloadImpactResources and their operations over a WorkloadImpactResource. + public static WorkloadImpactCollection GetWorkloadImpacts(this SubscriptionResource subscriptionResource) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableImpactReportingSubscriptionResource(subscriptionResource).GetWorkloadImpacts(); + } + + /// + /// Get a WorkloadImpact + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// workloadImpact resource. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public static async Task> GetWorkloadImpactAsync(this SubscriptionResource subscriptionResource, string workloadImpactName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return await GetMockableImpactReportingSubscriptionResource(subscriptionResource).GetWorkloadImpactAsync(workloadImpactName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a WorkloadImpact + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// workloadImpact resource. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public static Response GetWorkloadImpact(this SubscriptionResource subscriptionResource, string workloadImpactName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableImpactReportingSubscriptionResource(subscriptionResource).GetWorkloadImpact(workloadImpactName, cancellationToken); + } + + /// + /// Gets a collection of ImpactCategoryResources in the SubscriptionResource. + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// is null. + /// An object representing collection of ImpactCategoryResources and their operations over a ImpactCategoryResource. + public static ImpactCategoryCollection GetImpactCategories(this SubscriptionResource subscriptionResource) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableImpactReportingSubscriptionResource(subscriptionResource).GetImpactCategories(); + } + + /// + /// Get a ImpactCategory + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories/{impactCategoryName} + /// + /// + /// Operation Id + /// ImpactCategory_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// Name of the impact category. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public static async Task> GetImpactCategoryAsync(this SubscriptionResource subscriptionResource, string impactCategoryName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return await GetMockableImpactReportingSubscriptionResource(subscriptionResource).GetImpactCategoryAsync(impactCategoryName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a ImpactCategory + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories/{impactCategoryName} + /// + /// + /// Operation Id + /// ImpactCategory_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// Name of the impact category. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public static Response GetImpactCategory(this SubscriptionResource subscriptionResource, string impactCategoryName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableImpactReportingSubscriptionResource(subscriptionResource).GetImpactCategory(impactCategoryName, cancellationToken); + } + + /// + /// Gets a collection of ConnectorResources in the SubscriptionResource. + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// is null. + /// An object representing collection of ConnectorResources and their operations over a ConnectorResource. + public static ConnectorCollection GetConnectors(this SubscriptionResource subscriptionResource) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableImpactReportingSubscriptionResource(subscriptionResource).GetConnectors(); + } + + /// + /// Get a Connector + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// The name of the connector. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public static async Task> GetConnectorAsync(this SubscriptionResource subscriptionResource, string connectorName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return await GetMockableImpactReportingSubscriptionResource(subscriptionResource).GetConnectorAsync(connectorName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a Connector + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// The name of the connector. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public static Response GetConnector(this SubscriptionResource subscriptionResource, string connectorName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableImpactReportingSubscriptionResource(subscriptionResource).GetConnector(connectorName, cancellationToken); + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Extensions/MockableImpactReportingArmClient.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Extensions/MockableImpactReportingArmClient.cs new file mode 100644 index 000000000000..eb3eaa76ba96 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Extensions/MockableImpactReportingArmClient.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Mocking +{ + /// A class to add extension methods to ArmClient. + public partial class MockableImpactReportingArmClient : ArmResource + { + /// Initializes a new instance of the class for mocking. + protected MockableImpactReportingArmClient() + { + } + + /// Initializes a new instance of the class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal MockableImpactReportingArmClient(ArmClient client, ResourceIdentifier id) : base(client, id) + { + } + + internal MockableImpactReportingArmClient(ArmClient client) : this(client, ResourceIdentifier.Root) + { + } + + private string GetApiVersionOrNull(ResourceType resourceType) + { + TryGetApiVersion(resourceType, out string apiVersion); + return apiVersion; + } + + /// + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// You can use to create a from its components. + /// + /// The resource ID of the resource to get. + /// Returns a object. + public virtual WorkloadImpactResource GetWorkloadImpactResource(ResourceIdentifier id) + { + WorkloadImpactResource.ValidateResourceId(id); + return new WorkloadImpactResource(Client, id); + } + + /// + /// Gets an object representing an along with the instance operations that can be performed on it but with no data. + /// You can use to create an from its components. + /// + /// The resource ID of the resource to get. + /// Returns a object. + public virtual ImpactCategoryResource GetImpactCategoryResource(ResourceIdentifier id) + { + ImpactCategoryResource.ValidateResourceId(id); + return new ImpactCategoryResource(Client, id); + } + + /// + /// Gets an object representing an along with the instance operations that can be performed on it but with no data. + /// You can use to create an from its components. + /// + /// The resource ID of the resource to get. + /// Returns a object. + public virtual InsightResource GetInsightResource(ResourceIdentifier id) + { + InsightResource.ValidateResourceId(id); + return new InsightResource(Client, id); + } + + /// + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// You can use to create a from its components. + /// + /// The resource ID of the resource to get. + /// Returns a object. + public virtual ConnectorResource GetConnectorResource(ResourceIdentifier id) + { + ConnectorResource.ValidateResourceId(id); + return new ConnectorResource(Client, id); + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Extensions/MockableImpactReportingSubscriptionResource.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Extensions/MockableImpactReportingSubscriptionResource.cs new file mode 100644 index 000000000000..65d4b48c48b0 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Extensions/MockableImpactReportingSubscriptionResource.cs @@ -0,0 +1,243 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Mocking +{ + /// A class to add extension methods to SubscriptionResource. + public partial class MockableImpactReportingSubscriptionResource : ArmResource + { + /// Initializes a new instance of the class for mocking. + protected MockableImpactReportingSubscriptionResource() + { + } + + /// Initializes a new instance of the class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal MockableImpactReportingSubscriptionResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + } + + private string GetApiVersionOrNull(ResourceType resourceType) + { + TryGetApiVersion(resourceType, out string apiVersion); + return apiVersion; + } + + /// Gets a collection of WorkloadImpactResources in the SubscriptionResource. + /// An object representing collection of WorkloadImpactResources and their operations over a WorkloadImpactResource. + public virtual WorkloadImpactCollection GetWorkloadImpacts() + { + return GetCachedClient(client => new WorkloadImpactCollection(client, Id)); + } + + /// + /// Get a WorkloadImpact + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// workloadImpact resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetWorkloadImpactAsync(string workloadImpactName, CancellationToken cancellationToken = default) + { + return await GetWorkloadImpacts().GetAsync(workloadImpactName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a WorkloadImpact + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// workloadImpact resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetWorkloadImpact(string workloadImpactName, CancellationToken cancellationToken = default) + { + return GetWorkloadImpacts().Get(workloadImpactName, cancellationToken); + } + + /// Gets a collection of ImpactCategoryResources in the SubscriptionResource. + /// An object representing collection of ImpactCategoryResources and their operations over a ImpactCategoryResource. + public virtual ImpactCategoryCollection GetImpactCategories() + { + return GetCachedClient(client => new ImpactCategoryCollection(client, Id)); + } + + /// + /// Get a ImpactCategory + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories/{impactCategoryName} + /// + /// + /// Operation Id + /// ImpactCategory_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of the impact category. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetImpactCategoryAsync(string impactCategoryName, CancellationToken cancellationToken = default) + { + return await GetImpactCategories().GetAsync(impactCategoryName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a ImpactCategory + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories/{impactCategoryName} + /// + /// + /// Operation Id + /// ImpactCategory_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of the impact category. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetImpactCategory(string impactCategoryName, CancellationToken cancellationToken = default) + { + return GetImpactCategories().Get(impactCategoryName, cancellationToken); + } + + /// Gets a collection of ConnectorResources in the SubscriptionResource. + /// An object representing collection of ConnectorResources and their operations over a ConnectorResource. + public virtual ConnectorCollection GetConnectors() + { + return GetCachedClient(client => new ConnectorCollection(client, Id)); + } + + /// + /// Get a Connector + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The name of the connector. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetConnectorAsync(string connectorName, CancellationToken cancellationToken = default) + { + return await GetConnectors().GetAsync(connectorName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a Connector + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName} + /// + /// + /// Operation Id + /// Connector_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The name of the connector. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetConnector(string connectorName, CancellationToken cancellationToken = default) + { + return GetConnectors().Get(connectorName, cancellationToken); + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryCollection.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryCollection.cs new file mode 100644 index 000000000000..a3ea25e4ff0f --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryCollection.cs @@ -0,0 +1,389 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Globalization; +using System.Threading; +using System.Threading.Tasks; +using Autorest.CSharp.Core; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.ImpactReporting +{ + /// + /// A class representing a collection of and their operations. + /// Each in the collection will belong to the same instance of . + /// To get an instance call the GetImpactCategories method from an instance of . + /// + public partial class ImpactCategoryCollection : ArmCollection + { + private readonly ClientDiagnostics _impactCategoryClientDiagnostics; + private readonly ImpactCategoriesRestOperations _impactCategoryRestClient; + + /// Initializes a new instance of the class for mocking. + protected ImpactCategoryCollection() + { + } + + /// Initializes a new instance of the class. + /// The client parameters to use in these operations. + /// The identifier of the parent resource that is the target of operations. + internal ImpactCategoryCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + _impactCategoryClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.ImpactReporting", ImpactCategoryResource.ResourceType.Namespace, Diagnostics); + TryGetApiVersion(ImpactCategoryResource.ResourceType, out string impactCategoryApiVersion); + _impactCategoryRestClient = new ImpactCategoriesRestOperations(Pipeline, Diagnostics.ApplicationId, Endpoint, impactCategoryApiVersion); +#if DEBUG + ValidateResourceId(Id); +#endif + } + + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != SubscriptionResource.ResourceType) + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "Invalid resource type {0} expected {1}", id.ResourceType, SubscriptionResource.ResourceType), nameof(id)); + } + + /// + /// Get a ImpactCategory + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories/{impactCategoryName} + /// + /// + /// Operation Id + /// ImpactCategory_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of the impact category. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual async Task> GetAsync(string impactCategoryName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(impactCategoryName, nameof(impactCategoryName)); + + using var scope = _impactCategoryClientDiagnostics.CreateScope("ImpactCategoryCollection.Get"); + scope.Start(); + try + { + var response = await _impactCategoryRestClient.GetAsync(Id.SubscriptionId, impactCategoryName, cancellationToken).ConfigureAwait(false); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new ImpactCategoryResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a ImpactCategory + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories/{impactCategoryName} + /// + /// + /// Operation Id + /// ImpactCategory_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of the impact category. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual Response Get(string impactCategoryName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(impactCategoryName, nameof(impactCategoryName)); + + using var scope = _impactCategoryClientDiagnostics.CreateScope("ImpactCategoryCollection.Get"); + scope.Start(); + try + { + var response = _impactCategoryRestClient.Get(Id.SubscriptionId, impactCategoryName, cancellationToken); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new ImpactCategoryResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// List ImpactCategory resources by subscription + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories + /// + /// + /// Operation Id + /// ImpactCategory_ListBySubscription + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Filter by resource type. + /// Filter by category name. + /// The cancellation token to use. + /// is null. + /// An async collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetAllAsync(string resourceType, string categoryName = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(resourceType, nameof(resourceType)); + + HttpMessage FirstPageRequest(int? pageSizeHint) => _impactCategoryRestClient.CreateListBySubscriptionRequest(Id.SubscriptionId, resourceType, categoryName); + HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => _impactCategoryRestClient.CreateListBySubscriptionNextPageRequest(nextLink, Id.SubscriptionId, resourceType, categoryName); + return GeneratorPageableHelpers.CreateAsyncPageable(FirstPageRequest, NextPageRequest, e => new ImpactCategoryResource(Client, ImpactCategoryData.DeserializeImpactCategoryData(e)), _impactCategoryClientDiagnostics, Pipeline, "ImpactCategoryCollection.GetAll", "value", "nextLink", cancellationToken); + } + + /// + /// List ImpactCategory resources by subscription + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories + /// + /// + /// Operation Id + /// ImpactCategory_ListBySubscription + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Filter by resource type. + /// Filter by category name. + /// The cancellation token to use. + /// is null. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetAll(string resourceType, string categoryName = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(resourceType, nameof(resourceType)); + + HttpMessage FirstPageRequest(int? pageSizeHint) => _impactCategoryRestClient.CreateListBySubscriptionRequest(Id.SubscriptionId, resourceType, categoryName); + HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => _impactCategoryRestClient.CreateListBySubscriptionNextPageRequest(nextLink, Id.SubscriptionId, resourceType, categoryName); + return GeneratorPageableHelpers.CreatePageable(FirstPageRequest, NextPageRequest, e => new ImpactCategoryResource(Client, ImpactCategoryData.DeserializeImpactCategoryData(e)), _impactCategoryClientDiagnostics, Pipeline, "ImpactCategoryCollection.GetAll", "value", "nextLink", cancellationToken); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories/{impactCategoryName} + /// + /// + /// Operation Id + /// ImpactCategory_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of the impact category. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual async Task> ExistsAsync(string impactCategoryName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(impactCategoryName, nameof(impactCategoryName)); + + using var scope = _impactCategoryClientDiagnostics.CreateScope("ImpactCategoryCollection.Exists"); + scope.Start(); + try + { + var response = await _impactCategoryRestClient.GetAsync(Id.SubscriptionId, impactCategoryName, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories/{impactCategoryName} + /// + /// + /// Operation Id + /// ImpactCategory_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of the impact category. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual Response Exists(string impactCategoryName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(impactCategoryName, nameof(impactCategoryName)); + + using var scope = _impactCategoryClientDiagnostics.CreateScope("ImpactCategoryCollection.Exists"); + scope.Start(); + try + { + var response = _impactCategoryRestClient.Get(Id.SubscriptionId, impactCategoryName, cancellationToken: cancellationToken); + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories/{impactCategoryName} + /// + /// + /// Operation Id + /// ImpactCategory_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of the impact category. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual async Task> GetIfExistsAsync(string impactCategoryName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(impactCategoryName, nameof(impactCategoryName)); + + using var scope = _impactCategoryClientDiagnostics.CreateScope("ImpactCategoryCollection.GetIfExists"); + scope.Start(); + try + { + var response = await _impactCategoryRestClient.GetAsync(Id.SubscriptionId, impactCategoryName, cancellationToken: cancellationToken).ConfigureAwait(false); + if (response.Value == null) + return new NoValueResponse(response.GetRawResponse()); + return Response.FromValue(new ImpactCategoryResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories/{impactCategoryName} + /// + /// + /// Operation Id + /// ImpactCategory_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of the impact category. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual NullableResponse GetIfExists(string impactCategoryName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(impactCategoryName, nameof(impactCategoryName)); + + using var scope = _impactCategoryClientDiagnostics.CreateScope("ImpactCategoryCollection.GetIfExists"); + scope.Start(); + try + { + var response = _impactCategoryRestClient.Get(Id.SubscriptionId, impactCategoryName, cancellationToken: cancellationToken); + if (response.Value == null) + return new NoValueResponse(response.GetRawResponse()); + return Response.FromValue(new ImpactCategoryResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryData.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryData.Serialization.cs new file mode 100644 index 000000000000..1877d9d1bce1 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryData.Serialization.cs @@ -0,0 +1,155 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; +using Azure.ResourceManager.ImpactReporting.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.ImpactReporting +{ + public partial class ImpactCategoryData : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ImpactCategoryData)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + ImpactCategoryData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ImpactCategoryData)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeImpactCategoryData(document.RootElement, options); + } + + internal static ImpactCategoryData DeserializeImpactCategoryData(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ImpactCategoryProperties properties = default; + ResourceIdentifier id = default; + string name = default; + ResourceType type = default; + SystemData systemData = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("properties"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = ImpactCategoryProperties.DeserializeImpactCategoryProperties(property.Value, options); + continue; + } + if (property.NameEquals("id"u8)) + { + id = new ResourceIdentifier(property.Value.GetString()); + continue; + } + if (property.NameEquals("name"u8)) + { + name = property.Value.GetString(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = new ResourceType(property.Value.GetString()); + continue; + } + if (property.NameEquals("systemData"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = JsonSerializer.Deserialize(property.Value.GetRawText()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ImpactCategoryData( + id, + name, + type, + systemData, + properties, + serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ImpactCategoryData)} does not support writing '{options.Format}' format."); + } + } + + ImpactCategoryData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeImpactCategoryData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ImpactCategoryData)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryData.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryData.cs new file mode 100644 index 000000000000..6605b9661ceb --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryData.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.ImpactReporting.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.ImpactReporting +{ + /// + /// A class representing the ImpactCategory data model. + /// ImpactCategory resource + /// + public partial class ImpactCategoryData : ResourceData + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + internal ImpactCategoryData() + { + } + + /// Initializes a new instance of . + /// The id. + /// The name. + /// The resourceType. + /// The systemData. + /// The resource-specific properties for this resource. + /// Keeps track of any properties unknown to the library. + internal ImpactCategoryData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, ImpactCategoryProperties properties, IDictionary serializedAdditionalRawData) : base(id, name, resourceType, systemData) + { + Properties = properties; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The resource-specific properties for this resource. + public ImpactCategoryProperties Properties { get; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryResource.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryResource.Serialization.cs new file mode 100644 index 000000000000..225490832a38 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryResource.Serialization.cs @@ -0,0 +1,26 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace Azure.ResourceManager.ImpactReporting +{ + public partial class ImpactCategoryResource : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + ImpactCategoryData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => ((IJsonModel)Data).Create(ref reader, options); + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options); + + ImpactCategoryData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options); + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => ((IPersistableModel)Data).GetFormatFromOptions(options); + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryResource.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryResource.cs new file mode 100644 index 000000000000..4d1590547b24 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ImpactCategoryResource.cs @@ -0,0 +1,170 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Globalization; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.ImpactReporting +{ + /// + /// A Class representing an ImpactCategory along with the instance operations that can be performed on it. + /// If you have a you can construct an + /// from an instance of using the GetImpactCategoryResource method. + /// Otherwise you can get one from its parent resource using the GetImpactCategory method. + /// + public partial class ImpactCategoryResource : ArmResource + { + /// Generate the resource identifier of a instance. + /// The subscriptionId. + /// The impactCategoryName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string impactCategoryName) + { + var resourceId = $"/subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories/{impactCategoryName}"; + return new ResourceIdentifier(resourceId); + } + + private readonly ClientDiagnostics _impactCategoryClientDiagnostics; + private readonly ImpactCategoriesRestOperations _impactCategoryRestClient; + private readonly ImpactCategoryData _data; + + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Impact/impactCategories"; + + /// Initializes a new instance of the class for mocking. + protected ImpactCategoryResource() + { + } + + /// Initializes a new instance of the class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal ImpactCategoryResource(ArmClient client, ImpactCategoryData data) : this(client, data.Id) + { + HasData = true; + _data = data; + } + + /// Initializes a new instance of the class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal ImpactCategoryResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + _impactCategoryClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.ImpactReporting", ResourceType.Namespace, Diagnostics); + TryGetApiVersion(ResourceType, out string impactCategoryApiVersion); + _impactCategoryRestClient = new ImpactCategoriesRestOperations(Pipeline, Diagnostics.ApplicationId, Endpoint, impactCategoryApiVersion); +#if DEBUG + ValidateResourceId(Id); +#endif + } + + /// Gets whether or not the current instance has data. + public virtual bool HasData { get; } + + /// Gets the data representing this Feature. + /// Throws if there is no data loaded in the current instance. + public virtual ImpactCategoryData Data + { + get + { + if (!HasData) + throw new InvalidOperationException("The current instance does not have data, you must call Get first."); + return _data; + } + } + + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceType) + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "Invalid resource type {0} expected {1}", id.ResourceType, ResourceType), nameof(id)); + } + + /// + /// Get a ImpactCategory + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories/{impactCategoryName} + /// + /// + /// Operation Id + /// ImpactCategory_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using var scope = _impactCategoryClientDiagnostics.CreateScope("ImpactCategoryResource.Get"); + scope.Start(); + try + { + var response = await _impactCategoryRestClient.GetAsync(Id.SubscriptionId, Id.Name, cancellationToken).ConfigureAwait(false); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new ImpactCategoryResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a ImpactCategory + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories/{impactCategoryName} + /// + /// + /// Operation Id + /// ImpactCategory_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using var scope = _impactCategoryClientDiagnostics.CreateScope("ImpactCategoryResource.Get"); + scope.Start(); + try + { + var response = _impactCategoryRestClient.Get(Id.SubscriptionId, Id.Name, cancellationToken); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new ImpactCategoryResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightCollection.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightCollection.cs new file mode 100644 index 000000000000..5f628d8a4a83 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightCollection.cs @@ -0,0 +1,497 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Threading; +using System.Threading.Tasks; +using Autorest.CSharp.Core; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.ImpactReporting +{ + /// + /// A class representing a collection of and their operations. + /// Each in the collection will belong to the same instance of . + /// To get an instance call the GetInsights method from an instance of . + /// + public partial class InsightCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _insightClientDiagnostics; + private readonly InsightsRestOperations _insightRestClient; + + /// Initializes a new instance of the class for mocking. + protected InsightCollection() + { + } + + /// Initializes a new instance of the class. + /// The client parameters to use in these operations. + /// The identifier of the parent resource that is the target of operations. + internal InsightCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + _insightClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.ImpactReporting", InsightResource.ResourceType.Namespace, Diagnostics); + TryGetApiVersion(InsightResource.ResourceType, out string insightApiVersion); + _insightRestClient = new InsightsRestOperations(Pipeline, Diagnostics.ApplicationId, Endpoint, insightApiVersion); +#if DEBUG + ValidateResourceId(Id); +#endif + } + + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != WorkloadImpactResource.ResourceType) + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "Invalid resource type {0} expected {1}", id.ResourceType, WorkloadImpactResource.ResourceType), nameof(id)); + } + + /// + /// Create Insight resource, This is Admin only operation + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName} + /// + /// + /// Operation Id + /// Insight_Create + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// Name of the insight. + /// Resource create parameters. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// or is null. + public virtual async Task> CreateOrUpdateAsync(WaitUntil waitUntil, string insightName, InsightData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(insightName, nameof(insightName)); + Argument.AssertNotNull(data, nameof(data)); + + using var scope = _insightClientDiagnostics.CreateScope("InsightCollection.CreateOrUpdate"); + scope.Start(); + try + { + var response = await _insightRestClient.CreateAsync(Id.SubscriptionId, Id.Name, insightName, data, cancellationToken).ConfigureAwait(false); + var uri = _insightRestClient.CreateCreateRequestUri(Id.SubscriptionId, Id.Name, insightName, data); + var rehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(RequestMethod.Put, uri.ToUri(), uri.ToString(), "None", null, OperationFinalStateVia.OriginalUri.ToString()); + var operation = new ImpactReportingArmOperation(Response.FromValue(new InsightResource(Client, response), response.GetRawResponse()), rehydrationToken); + if (waitUntil == WaitUntil.Completed) + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Create Insight resource, This is Admin only operation + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName} + /// + /// + /// Operation Id + /// Insight_Create + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// Name of the insight. + /// Resource create parameters. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// or is null. + public virtual ArmOperation CreateOrUpdate(WaitUntil waitUntil, string insightName, InsightData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(insightName, nameof(insightName)); + Argument.AssertNotNull(data, nameof(data)); + + using var scope = _insightClientDiagnostics.CreateScope("InsightCollection.CreateOrUpdate"); + scope.Start(); + try + { + var response = _insightRestClient.Create(Id.SubscriptionId, Id.Name, insightName, data, cancellationToken); + var uri = _insightRestClient.CreateCreateRequestUri(Id.SubscriptionId, Id.Name, insightName, data); + var rehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(RequestMethod.Put, uri.ToUri(), uri.ToString(), "None", null, OperationFinalStateVia.OriginalUri.ToString()); + var operation = new ImpactReportingArmOperation(Response.FromValue(new InsightResource(Client, response), response.GetRawResponse()), rehydrationToken); + if (waitUntil == WaitUntil.Completed) + operation.WaitForCompletion(cancellationToken); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get Insight resources by workloadImpactName and insightName + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName} + /// + /// + /// Operation Id + /// Insight_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of the insight. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual async Task> GetAsync(string insightName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(insightName, nameof(insightName)); + + using var scope = _insightClientDiagnostics.CreateScope("InsightCollection.Get"); + scope.Start(); + try + { + var response = await _insightRestClient.GetAsync(Id.SubscriptionId, Id.Name, insightName, cancellationToken).ConfigureAwait(false); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new InsightResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get Insight resources by workloadImpactName and insightName + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName} + /// + /// + /// Operation Id + /// Insight_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of the insight. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual Response Get(string insightName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(insightName, nameof(insightName)); + + using var scope = _insightClientDiagnostics.CreateScope("InsightCollection.Get"); + scope.Start(); + try + { + var response = _insightRestClient.Get(Id.SubscriptionId, Id.Name, insightName, cancellationToken); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new InsightResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// List Insight resources by workloadImpactName + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights + /// + /// + /// Operation Id + /// Insight_ListBySubscription + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + /// An async collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetAllAsync(CancellationToken cancellationToken = default) + { + HttpMessage FirstPageRequest(int? pageSizeHint) => _insightRestClient.CreateListBySubscriptionRequest(Id.SubscriptionId, Id.Name); + HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => _insightRestClient.CreateListBySubscriptionNextPageRequest(nextLink, Id.SubscriptionId, Id.Name); + return GeneratorPageableHelpers.CreateAsyncPageable(FirstPageRequest, NextPageRequest, e => new InsightResource(Client, InsightData.DeserializeInsightData(e)), _insightClientDiagnostics, Pipeline, "InsightCollection.GetAll", "value", "nextLink", cancellationToken); + } + + /// + /// List Insight resources by workloadImpactName + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights + /// + /// + /// Operation Id + /// Insight_ListBySubscription + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetAll(CancellationToken cancellationToken = default) + { + HttpMessage FirstPageRequest(int? pageSizeHint) => _insightRestClient.CreateListBySubscriptionRequest(Id.SubscriptionId, Id.Name); + HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => _insightRestClient.CreateListBySubscriptionNextPageRequest(nextLink, Id.SubscriptionId, Id.Name); + return GeneratorPageableHelpers.CreatePageable(FirstPageRequest, NextPageRequest, e => new InsightResource(Client, InsightData.DeserializeInsightData(e)), _insightClientDiagnostics, Pipeline, "InsightCollection.GetAll", "value", "nextLink", cancellationToken); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName} + /// + /// + /// Operation Id + /// Insight_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of the insight. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual async Task> ExistsAsync(string insightName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(insightName, nameof(insightName)); + + using var scope = _insightClientDiagnostics.CreateScope("InsightCollection.Exists"); + scope.Start(); + try + { + var response = await _insightRestClient.GetAsync(Id.SubscriptionId, Id.Name, insightName, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName} + /// + /// + /// Operation Id + /// Insight_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of the insight. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual Response Exists(string insightName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(insightName, nameof(insightName)); + + using var scope = _insightClientDiagnostics.CreateScope("InsightCollection.Exists"); + scope.Start(); + try + { + var response = _insightRestClient.Get(Id.SubscriptionId, Id.Name, insightName, cancellationToken: cancellationToken); + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName} + /// + /// + /// Operation Id + /// Insight_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of the insight. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual async Task> GetIfExistsAsync(string insightName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(insightName, nameof(insightName)); + + using var scope = _insightClientDiagnostics.CreateScope("InsightCollection.GetIfExists"); + scope.Start(); + try + { + var response = await _insightRestClient.GetAsync(Id.SubscriptionId, Id.Name, insightName, cancellationToken: cancellationToken).ConfigureAwait(false); + if (response.Value == null) + return new NoValueResponse(response.GetRawResponse()); + return Response.FromValue(new InsightResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName} + /// + /// + /// Operation Id + /// Insight_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of the insight. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual NullableResponse GetIfExists(string insightName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(insightName, nameof(insightName)); + + using var scope = _insightClientDiagnostics.CreateScope("InsightCollection.GetIfExists"); + scope.Start(); + try + { + var response = _insightRestClient.Get(Id.SubscriptionId, Id.Name, insightName, cancellationToken: cancellationToken); + if (response.Value == null) + return new NoValueResponse(response.GetRawResponse()); + return Response.FromValue(new InsightResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IAsyncEnumerator IAsyncEnumerable.GetAsyncEnumerator(CancellationToken cancellationToken) + { + return GetAllAsync(cancellationToken: cancellationToken).GetAsyncEnumerator(cancellationToken); + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightData.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightData.Serialization.cs new file mode 100644 index 000000000000..c217f92548d3 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightData.Serialization.cs @@ -0,0 +1,155 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; +using Azure.ResourceManager.ImpactReporting.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.ImpactReporting +{ + public partial class InsightData : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InsightData)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + InsightData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InsightData)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInsightData(document.RootElement, options); + } + + internal static InsightData DeserializeInsightData(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + InsightProperties properties = default; + ResourceIdentifier id = default; + string name = default; + ResourceType type = default; + SystemData systemData = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("properties"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = InsightProperties.DeserializeInsightProperties(property.Value, options); + continue; + } + if (property.NameEquals("id"u8)) + { + id = new ResourceIdentifier(property.Value.GetString()); + continue; + } + if (property.NameEquals("name"u8)) + { + name = property.Value.GetString(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = new ResourceType(property.Value.GetString()); + continue; + } + if (property.NameEquals("systemData"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = JsonSerializer.Deserialize(property.Value.GetRawText()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new InsightData( + id, + name, + type, + systemData, + properties, + serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InsightData)} does not support writing '{options.Format}' format."); + } + } + + InsightData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeInsightData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InsightData)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightData.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightData.cs new file mode 100644 index 000000000000..c5bb97ad25a8 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightData.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.ImpactReporting.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.ImpactReporting +{ + /// + /// A class representing the Insight data model. + /// Insight resource + /// + public partial class InsightData : ResourceData + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + public InsightData() + { + } + + /// Initializes a new instance of . + /// The id. + /// The name. + /// The resourceType. + /// The systemData. + /// The resource-specific properties for this resource. + /// Keeps track of any properties unknown to the library. + internal InsightData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, InsightProperties properties, IDictionary serializedAdditionalRawData) : base(id, name, resourceType, systemData) + { + Properties = properties; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The resource-specific properties for this resource. + public InsightProperties Properties { get; set; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightResource.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightResource.Serialization.cs new file mode 100644 index 000000000000..c5a59366e0f5 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightResource.Serialization.cs @@ -0,0 +1,26 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace Azure.ResourceManager.ImpactReporting +{ + public partial class InsightResource : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + InsightData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => ((IJsonModel)Data).Create(ref reader, options); + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options); + + InsightData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options); + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => ((IPersistableModel)Data).GetFormatFromOptions(options); + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightResource.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightResource.cs new file mode 100644 index 000000000000..c1945374eac6 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/InsightResource.cs @@ -0,0 +1,354 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Globalization; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.ImpactReporting +{ + /// + /// A Class representing an Insight along with the instance operations that can be performed on it. + /// If you have a you can construct an + /// from an instance of using the GetInsightResource method. + /// Otherwise you can get one from its parent resource using the GetInsight method. + /// + public partial class InsightResource : ArmResource + { + /// Generate the resource identifier of a instance. + /// The subscriptionId. + /// The workloadImpactName. + /// The insightName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string workloadImpactName, string insightName) + { + var resourceId = $"/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName}"; + return new ResourceIdentifier(resourceId); + } + + private readonly ClientDiagnostics _insightClientDiagnostics; + private readonly InsightsRestOperations _insightRestClient; + private readonly InsightData _data; + + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Impact/workloadImpacts/insights"; + + /// Initializes a new instance of the class for mocking. + protected InsightResource() + { + } + + /// Initializes a new instance of the class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal InsightResource(ArmClient client, InsightData data) : this(client, data.Id) + { + HasData = true; + _data = data; + } + + /// Initializes a new instance of the class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal InsightResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + _insightClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.ImpactReporting", ResourceType.Namespace, Diagnostics); + TryGetApiVersion(ResourceType, out string insightApiVersion); + _insightRestClient = new InsightsRestOperations(Pipeline, Diagnostics.ApplicationId, Endpoint, insightApiVersion); +#if DEBUG + ValidateResourceId(Id); +#endif + } + + /// Gets whether or not the current instance has data. + public virtual bool HasData { get; } + + /// Gets the data representing this Feature. + /// Throws if there is no data loaded in the current instance. + public virtual InsightData Data + { + get + { + if (!HasData) + throw new InvalidOperationException("The current instance does not have data, you must call Get first."); + return _data; + } + } + + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceType) + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "Invalid resource type {0} expected {1}", id.ResourceType, ResourceType), nameof(id)); + } + + /// + /// Get Insight resources by workloadImpactName and insightName + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName} + /// + /// + /// Operation Id + /// Insight_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using var scope = _insightClientDiagnostics.CreateScope("InsightResource.Get"); + scope.Start(); + try + { + var response = await _insightRestClient.GetAsync(Id.SubscriptionId, Id.Parent.Name, Id.Name, cancellationToken).ConfigureAwait(false); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new InsightResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get Insight resources by workloadImpactName and insightName + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName} + /// + /// + /// Operation Id + /// Insight_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using var scope = _insightClientDiagnostics.CreateScope("InsightResource.Get"); + scope.Start(); + try + { + var response = _insightRestClient.Get(Id.SubscriptionId, Id.Parent.Name, Id.Name, cancellationToken); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new InsightResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete Insight resource, This is Admin only operation + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName} + /// + /// + /// Operation Id + /// Insight_Delete + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual async Task DeleteAsync(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using var scope = _insightClientDiagnostics.CreateScope("InsightResource.Delete"); + scope.Start(); + try + { + var response = await _insightRestClient.DeleteAsync(Id.SubscriptionId, Id.Parent.Name, Id.Name, cancellationToken).ConfigureAwait(false); + var uri = _insightRestClient.CreateDeleteRequestUri(Id.SubscriptionId, Id.Parent.Name, Id.Name); + var rehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(RequestMethod.Delete, uri.ToUri(), uri.ToString(), "None", null, OperationFinalStateVia.OriginalUri.ToString()); + var operation = new ImpactReportingArmOperation(response, rehydrationToken); + if (waitUntil == WaitUntil.Completed) + await operation.WaitForCompletionResponseAsync(cancellationToken).ConfigureAwait(false); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete Insight resource, This is Admin only operation + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName} + /// + /// + /// Operation Id + /// Insight_Delete + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual ArmOperation Delete(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using var scope = _insightClientDiagnostics.CreateScope("InsightResource.Delete"); + scope.Start(); + try + { + var response = _insightRestClient.Delete(Id.SubscriptionId, Id.Parent.Name, Id.Name, cancellationToken); + var uri = _insightRestClient.CreateDeleteRequestUri(Id.SubscriptionId, Id.Parent.Name, Id.Name); + var rehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(RequestMethod.Delete, uri.ToUri(), uri.ToString(), "None", null, OperationFinalStateVia.OriginalUri.ToString()); + var operation = new ImpactReportingArmOperation(response, rehydrationToken); + if (waitUntil == WaitUntil.Completed) + operation.WaitForCompletionResponse(cancellationToken); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Create Insight resource, This is Admin only operation + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName} + /// + /// + /// Operation Id + /// Insight_Create + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// Resource create parameters. + /// The cancellation token to use. + /// is null. + public virtual async Task> UpdateAsync(WaitUntil waitUntil, InsightData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using var scope = _insightClientDiagnostics.CreateScope("InsightResource.Update"); + scope.Start(); + try + { + var response = await _insightRestClient.CreateAsync(Id.SubscriptionId, Id.Parent.Name, Id.Name, data, cancellationToken).ConfigureAwait(false); + var uri = _insightRestClient.CreateCreateRequestUri(Id.SubscriptionId, Id.Parent.Name, Id.Name, data); + var rehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(RequestMethod.Put, uri.ToUri(), uri.ToString(), "None", null, OperationFinalStateVia.OriginalUri.ToString()); + var operation = new ImpactReportingArmOperation(Response.FromValue(new InsightResource(Client, response), response.GetRawResponse()), rehydrationToken); + if (waitUntil == WaitUntil.Completed) + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Create Insight resource, This is Admin only operation + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName} + /// + /// + /// Operation Id + /// Insight_Create + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// Resource create parameters. + /// The cancellation token to use. + /// is null. + public virtual ArmOperation Update(WaitUntil waitUntil, InsightData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using var scope = _insightClientDiagnostics.CreateScope("InsightResource.Update"); + scope.Start(); + try + { + var response = _insightRestClient.Create(Id.SubscriptionId, Id.Parent.Name, Id.Name, data, cancellationToken); + var uri = _insightRestClient.CreateCreateRequestUri(Id.SubscriptionId, Id.Parent.Name, Id.Name, data); + var rehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(RequestMethod.Put, uri.ToUri(), uri.ToString(), "None", null, OperationFinalStateVia.OriginalUri.ToString()); + var operation = new ImpactReportingArmOperation(Response.FromValue(new InsightResource(Client, response), response.GetRawResponse()), rehydrationToken); + if (waitUntil == WaitUntil.Completed) + operation.WaitForCompletion(cancellationToken); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/Argument.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/Argument.cs new file mode 100644 index 000000000000..8bcc5c0fc004 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/Argument.cs @@ -0,0 +1,129 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting +{ + internal static class Argument + { + public static void AssertNotNull(T value, string name) + { + if (value is null) + { + throw new ArgumentNullException(name); + } + } + + public static void AssertNotNull(T? value, string name) + where T : struct + { + if (!value.HasValue) + { + throw new ArgumentNullException(name); + } + } + + public static void AssertNotNullOrEmpty(IEnumerable value, string name) + { + if (value is null) + { + throw new ArgumentNullException(name); + } + if (value is ICollection collectionOfT && collectionOfT.Count == 0) + { + throw new ArgumentException("Value cannot be an empty collection.", name); + } + if (value is ICollection collection && collection.Count == 0) + { + throw new ArgumentException("Value cannot be an empty collection.", name); + } + using IEnumerator e = value.GetEnumerator(); + if (!e.MoveNext()) + { + throw new ArgumentException("Value cannot be an empty collection.", name); + } + } + + public static void AssertNotNullOrEmpty(string value, string name) + { + if (value is null) + { + throw new ArgumentNullException(name); + } + if (value.Length == 0) + { + throw new ArgumentException("Value cannot be an empty string.", name); + } + } + + public static void AssertNotNullOrWhiteSpace(string value, string name) + { + if (value is null) + { + throw new ArgumentNullException(name); + } + if (string.IsNullOrWhiteSpace(value)) + { + throw new ArgumentException("Value cannot be empty or contain only white-space characters.", name); + } + } + + public static void AssertNotDefault(ref T value, string name) + where T : struct, IEquatable + { + if (value.Equals(default)) + { + throw new ArgumentException("Value cannot be empty.", name); + } + } + + public static void AssertInRange(T value, T minimum, T maximum, string name) + where T : notnull, IComparable + { + if (minimum.CompareTo(value) > 0) + { + throw new ArgumentOutOfRangeException(name, "Value is less than the minimum allowed."); + } + if (maximum.CompareTo(value) < 0) + { + throw new ArgumentOutOfRangeException(name, "Value is greater than the maximum allowed."); + } + } + + public static void AssertEnumDefined(Type enumType, object value, string name) + { + if (!Enum.IsDefined(enumType, value)) + { + throw new ArgumentException($"Value not defined for {enumType.FullName}.", name); + } + } + + public static T CheckNotNull(T value, string name) + where T : class + { + AssertNotNull(value, name); + return value; + } + + public static string CheckNotNullOrEmpty(string value, string name) + { + AssertNotNullOrEmpty(value, name); + return value; + } + + public static void AssertNull(T value, string name, string message = null) + { + if (value != null) + { + throw new ArgumentException(message ?? "Value must be null.", name); + } + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/ChangeTrackingDictionary.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/ChangeTrackingDictionary.cs new file mode 100644 index 000000000000..beda10e4a2a1 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/ChangeTrackingDictionary.cs @@ -0,0 +1,167 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting +{ + internal class ChangeTrackingDictionary : IDictionary, IReadOnlyDictionary where TKey : notnull + { + private IDictionary _innerDictionary; + + public ChangeTrackingDictionary() + { + } + + public ChangeTrackingDictionary(IDictionary dictionary) + { + if (dictionary == null) + { + return; + } + _innerDictionary = new Dictionary(dictionary); + } + + public ChangeTrackingDictionary(IReadOnlyDictionary dictionary) + { + if (dictionary == null) + { + return; + } + _innerDictionary = new Dictionary(); + foreach (var pair in dictionary) + { + _innerDictionary.Add(pair); + } + } + + public bool IsUndefined => _innerDictionary == null; + + public int Count => IsUndefined ? 0 : EnsureDictionary().Count; + + public bool IsReadOnly => IsUndefined ? false : EnsureDictionary().IsReadOnly; + + public ICollection Keys => IsUndefined ? Array.Empty() : EnsureDictionary().Keys; + + public ICollection Values => IsUndefined ? Array.Empty() : EnsureDictionary().Values; + + public TValue this[TKey key] + { + get + { + if (IsUndefined) + { + throw new KeyNotFoundException(nameof(key)); + } + return EnsureDictionary()[key]; + } + set + { + EnsureDictionary()[key] = value; + } + } + + IEnumerable IReadOnlyDictionary.Keys => Keys; + + IEnumerable IReadOnlyDictionary.Values => Values; + + public IEnumerator> GetEnumerator() + { + if (IsUndefined) + { + IEnumerator> enumerateEmpty() + { + yield break; + } + return enumerateEmpty(); + } + return EnsureDictionary().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + public void Add(KeyValuePair item) + { + EnsureDictionary().Add(item); + } + + public void Clear() + { + EnsureDictionary().Clear(); + } + + public bool Contains(KeyValuePair item) + { + if (IsUndefined) + { + return false; + } + return EnsureDictionary().Contains(item); + } + + public void CopyTo(KeyValuePair[] array, int index) + { + if (IsUndefined) + { + return; + } + EnsureDictionary().CopyTo(array, index); + } + + public bool Remove(KeyValuePair item) + { + if (IsUndefined) + { + return false; + } + return EnsureDictionary().Remove(item); + } + + public void Add(TKey key, TValue value) + { + EnsureDictionary().Add(key, value); + } + + public bool ContainsKey(TKey key) + { + if (IsUndefined) + { + return false; + } + return EnsureDictionary().ContainsKey(key); + } + + public bool Remove(TKey key) + { + if (IsUndefined) + { + return false; + } + return EnsureDictionary().Remove(key); + } + + public bool TryGetValue(TKey key, out TValue value) + { + if (IsUndefined) + { + value = default; + return false; + } + return EnsureDictionary().TryGetValue(key, out value); + } + + public IDictionary EnsureDictionary() + { + return _innerDictionary ??= new Dictionary(); + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/ChangeTrackingList.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/ChangeTrackingList.cs new file mode 100644 index 000000000000..a9c54ec968fb --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/ChangeTrackingList.cs @@ -0,0 +1,153 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; + +namespace Azure.ResourceManager.ImpactReporting +{ + internal class ChangeTrackingList : IList, IReadOnlyList + { + private IList _innerList; + + public ChangeTrackingList() + { + } + + public ChangeTrackingList(IList innerList) + { + if (innerList != null) + { + _innerList = innerList; + } + } + + public ChangeTrackingList(IReadOnlyList innerList) + { + if (innerList != null) + { + _innerList = innerList.ToList(); + } + } + + public bool IsUndefined => _innerList == null; + + public int Count => IsUndefined ? 0 : EnsureList().Count; + + public bool IsReadOnly => IsUndefined ? false : EnsureList().IsReadOnly; + + public T this[int index] + { + get + { + if (IsUndefined) + { + throw new ArgumentOutOfRangeException(nameof(index)); + } + return EnsureList()[index]; + } + set + { + if (IsUndefined) + { + throw new ArgumentOutOfRangeException(nameof(index)); + } + EnsureList()[index] = value; + } + } + + public void Reset() + { + _innerList = null; + } + + public IEnumerator GetEnumerator() + { + if (IsUndefined) + { + IEnumerator enumerateEmpty() + { + yield break; + } + return enumerateEmpty(); + } + return EnsureList().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + public void Add(T item) + { + EnsureList().Add(item); + } + + public void Clear() + { + EnsureList().Clear(); + } + + public bool Contains(T item) + { + if (IsUndefined) + { + return false; + } + return EnsureList().Contains(item); + } + + public void CopyTo(T[] array, int arrayIndex) + { + if (IsUndefined) + { + return; + } + EnsureList().CopyTo(array, arrayIndex); + } + + public bool Remove(T item) + { + if (IsUndefined) + { + return false; + } + return EnsureList().Remove(item); + } + + public int IndexOf(T item) + { + if (IsUndefined) + { + return -1; + } + return EnsureList().IndexOf(item); + } + + public void Insert(int index, T item) + { + EnsureList().Insert(index, item); + } + + public void RemoveAt(int index) + { + if (IsUndefined) + { + throw new ArgumentOutOfRangeException(nameof(index)); + } + EnsureList().RemoveAt(index); + } + + public IList EnsureList() + { + return _innerList ??= new List(); + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/ModelSerializationExtensions.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/ModelSerializationExtensions.cs new file mode 100644 index 000000000000..3c187775bf14 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/ModelSerializationExtensions.cs @@ -0,0 +1,399 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Diagnostics; +using System.Globalization; +using System.Text.Json; +using System.Xml; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting +{ + internal static class ModelSerializationExtensions + { + internal static readonly JsonDocumentOptions JsonDocumentOptions = new JsonDocumentOptions { MaxDepth = 256 }; + internal static readonly ModelReaderWriterOptions WireOptions = new ModelReaderWriterOptions("W"); + + public static object GetObject(this JsonElement element) + { + switch (element.ValueKind) + { + case JsonValueKind.String: + return element.GetString(); + case JsonValueKind.Number: + if (element.TryGetInt32(out int intValue)) + { + return intValue; + } + if (element.TryGetInt64(out long longValue)) + { + return longValue; + } + return element.GetDouble(); + case JsonValueKind.True: + return true; + case JsonValueKind.False: + return false; + case JsonValueKind.Undefined: + case JsonValueKind.Null: + return null; + case JsonValueKind.Object: + var dictionary = new Dictionary(); + foreach (var jsonProperty in element.EnumerateObject()) + { + dictionary.Add(jsonProperty.Name, jsonProperty.Value.GetObject()); + } + return dictionary; + case JsonValueKind.Array: + var list = new List(); + foreach (var item in element.EnumerateArray()) + { + list.Add(item.GetObject()); + } + return list.ToArray(); + default: + throw new NotSupportedException($"Not supported value kind {element.ValueKind}"); + } + } + + public static byte[] GetBytesFromBase64(this JsonElement element, string format) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + + return format switch + { + "U" => TypeFormatters.FromBase64UrlString(element.GetRequiredString()), + "D" => element.GetBytesFromBase64(), + _ => throw new ArgumentException($"Format is not supported: '{format}'", nameof(format)) + }; + } + + public static DateTimeOffset GetDateTimeOffset(this JsonElement element, string format) => format switch + { + "U" when element.ValueKind == JsonValueKind.Number => DateTimeOffset.FromUnixTimeSeconds(element.GetInt64()), + _ => TypeFormatters.ParseDateTimeOffset(element.GetString(), format) + }; + + public static TimeSpan GetTimeSpan(this JsonElement element, string format) => TypeFormatters.ParseTimeSpan(element.GetString(), format); + + public static char GetChar(this JsonElement element) + { + if (element.ValueKind == JsonValueKind.String) + { + var text = element.GetString(); + if (text == null || text.Length != 1) + { + throw new NotSupportedException($"Cannot convert \"{text}\" to a char"); + } + return text[0]; + } + else + { + throw new NotSupportedException($"Cannot convert {element.ValueKind} to a char"); + } + } + + [Conditional("DEBUG")] + public static void ThrowNonNullablePropertyIsNull(this JsonProperty property) + { + throw new JsonException($"A property '{property.Name}' defined as non-nullable but received as null from the service. This exception only happens in DEBUG builds of the library and would be ignored in the release build"); + } + + public static string GetRequiredString(this JsonElement element) + { + var value = element.GetString(); + if (value == null) + { + throw new InvalidOperationException($"The requested operation requires an element of type 'String', but the target element has type '{element.ValueKind}'."); + } + return value; + } + + public static void WriteStringValue(this Utf8JsonWriter writer, DateTimeOffset value, string format) + { + writer.WriteStringValue(TypeFormatters.ToString(value, format)); + } + + public static void WriteStringValue(this Utf8JsonWriter writer, DateTime value, string format) + { + writer.WriteStringValue(TypeFormatters.ToString(value, format)); + } + + public static void WriteStringValue(this Utf8JsonWriter writer, TimeSpan value, string format) + { + writer.WriteStringValue(TypeFormatters.ToString(value, format)); + } + + public static void WriteStringValue(this Utf8JsonWriter writer, char value) + { + writer.WriteStringValue(value.ToString(CultureInfo.InvariantCulture)); + } + + public static void WriteBase64StringValue(this Utf8JsonWriter writer, byte[] value, string format) + { + if (value == null) + { + writer.WriteNullValue(); + return; + } + switch (format) + { + case "U": + writer.WriteStringValue(TypeFormatters.ToBase64UrlString(value)); + break; + case "D": + writer.WriteBase64StringValue(value); + break; + default: + throw new ArgumentException($"Format is not supported: '{format}'", nameof(format)); + } + } + + public static void WriteNumberValue(this Utf8JsonWriter writer, DateTimeOffset value, string format) + { + if (format != "U") + { + throw new ArgumentOutOfRangeException(nameof(format), "Only 'U' format is supported when writing a DateTimeOffset as a Number."); + } + writer.WriteNumberValue(value.ToUnixTimeSeconds()); + } + + public static void WriteObjectValue(this Utf8JsonWriter writer, T value, ModelReaderWriterOptions options = null) + { + switch (value) + { + case null: + writer.WriteNullValue(); + break; + case IJsonModel jsonModel: + jsonModel.Write(writer, options ?? WireOptions); + break; + case IUtf8JsonSerializable serializable: + serializable.Write(writer); + break; + case byte[] bytes: + writer.WriteBase64StringValue(bytes); + break; + case BinaryData bytes0: + writer.WriteBase64StringValue(bytes0); + break; + case JsonElement json: + json.WriteTo(writer); + break; + case int i: + writer.WriteNumberValue(i); + break; + case decimal d: + writer.WriteNumberValue(d); + break; + case double d0: + if (double.IsNaN(d0)) + { + writer.WriteStringValue("NaN"); + } + else + { + writer.WriteNumberValue(d0); + } + break; + case float f: + writer.WriteNumberValue(f); + break; + case long l: + writer.WriteNumberValue(l); + break; + case string s: + writer.WriteStringValue(s); + break; + case bool b: + writer.WriteBooleanValue(b); + break; + case Guid g: + writer.WriteStringValue(g); + break; + case DateTimeOffset dateTimeOffset: + writer.WriteStringValue(dateTimeOffset, "O"); + break; + case DateTime dateTime: + writer.WriteStringValue(dateTime, "O"); + break; + case IEnumerable> enumerable: + writer.WriteStartObject(); + foreach (var pair in enumerable) + { + writer.WritePropertyName(pair.Key); + writer.WriteObjectValue(pair.Value, options); + } + writer.WriteEndObject(); + break; + case IEnumerable objectEnumerable: + writer.WriteStartArray(); + foreach (var item in objectEnumerable) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + break; + case TimeSpan timeSpan: + writer.WriteStringValue(timeSpan, "P"); + break; + default: + throw new NotSupportedException($"Not supported type {value.GetType()}"); + } + } + + public static void WriteObjectValue(this Utf8JsonWriter writer, object value, ModelReaderWriterOptions options = null) + { + writer.WriteObjectValue(value, options); + } + + internal static class TypeFormatters + { + private const string RoundtripZFormat = "yyyy-MM-ddTHH:mm:ss.fffffffZ"; + public const string DefaultNumberFormat = "G"; + + public static string ToString(bool value) => value ? "true" : "false"; + + public static string ToString(DateTime value, string format) => value.Kind switch + { + DateTimeKind.Utc => ToString((DateTimeOffset)value, format), + _ => throw new NotSupportedException($"DateTime {value} has a Kind of {value.Kind}. Azure SDK requires it to be UTC. You can call DateTime.SpecifyKind to change Kind property value to DateTimeKind.Utc.") + }; + + public static string ToString(DateTimeOffset value, string format) => format switch + { + "D" => value.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture), + "U" => value.ToUnixTimeSeconds().ToString(CultureInfo.InvariantCulture), + "O" => value.ToUniversalTime().ToString(RoundtripZFormat, CultureInfo.InvariantCulture), + "o" => value.ToUniversalTime().ToString(RoundtripZFormat, CultureInfo.InvariantCulture), + "R" => value.ToString("r", CultureInfo.InvariantCulture), + _ => value.ToString(format, CultureInfo.InvariantCulture) + }; + + public static string ToString(TimeSpan value, string format) => format switch + { + "P" => XmlConvert.ToString(value), + _ => value.ToString(format, CultureInfo.InvariantCulture) + }; + + public static string ToString(byte[] value, string format) => format switch + { + "U" => ToBase64UrlString(value), + "D" => Convert.ToBase64String(value), + _ => throw new ArgumentException($"Format is not supported: '{format}'", nameof(format)) + }; + + public static string ToBase64UrlString(byte[] value) + { + int numWholeOrPartialInputBlocks = checked(value.Length + 2) / 3; + int size = checked(numWholeOrPartialInputBlocks * 4); + char[] output = new char[size]; + + int numBase64Chars = Convert.ToBase64CharArray(value, 0, value.Length, output, 0); + + int i = 0; + for (; i < numBase64Chars; i++) + { + char ch = output[i]; + if (ch == '+') + { + output[i] = '-'; + } + else + { + if (ch == '/') + { + output[i] = '_'; + } + else + { + if (ch == '=') + { + break; + } + } + } + } + + return new string(output, 0, i); + } + + public static byte[] FromBase64UrlString(string value) + { + int paddingCharsToAdd = (value.Length % 4) switch + { + 0 => 0, + 2 => 2, + 3 => 1, + _ => throw new InvalidOperationException("Malformed input") + }; + char[] output = new char[(value.Length + paddingCharsToAdd)]; + int i = 0; + for (; i < value.Length; i++) + { + char ch = value[i]; + if (ch == '-') + { + output[i] = '+'; + } + else + { + if (ch == '_') + { + output[i] = '/'; + } + else + { + output[i] = ch; + } + } + } + + for (; i < output.Length; i++) + { + output[i] = '='; + } + + return Convert.FromBase64CharArray(output, 0, output.Length); + } + + public static DateTimeOffset ParseDateTimeOffset(string value, string format) => format switch + { + "U" => DateTimeOffset.FromUnixTimeSeconds(long.Parse(value, CultureInfo.InvariantCulture)), + _ => DateTimeOffset.Parse(value, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal) + }; + + public static TimeSpan ParseTimeSpan(string value, string format) => format switch + { + "P" => XmlConvert.ToTimeSpan(value), + _ => TimeSpan.ParseExact(value, format, CultureInfo.InvariantCulture) + }; + + public static string ConvertToString(object value, string format = null) => value switch + { + null => "null", + string s => s, + bool b => ToString(b), + int or float or double or long or decimal => ((IFormattable)value).ToString(DefaultNumberFormat, CultureInfo.InvariantCulture), + byte[] b0 when format != null => ToString(b0, format), + IEnumerable s0 => string.Join(",", s0), + DateTimeOffset dateTime when format != null => ToString(dateTime, format), + TimeSpan timeSpan when format != null => ToString(timeSpan, format), + TimeSpan timeSpan0 => XmlConvert.ToString(timeSpan0), + Guid guid => guid.ToString(), + BinaryData binaryData => ConvertToString(binaryData.ToArray(), format), + _ => value.ToString() + }; + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/Optional.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/Optional.cs new file mode 100644 index 000000000000..d987d8b2a49d --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/Optional.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Collections.Generic; +using System.Text.Json; + +namespace Azure.ResourceManager.ImpactReporting +{ + internal static class Optional + { + public static bool IsCollectionDefined(IEnumerable collection) + { + return !(collection is ChangeTrackingList changeTrackingList && changeTrackingList.IsUndefined); + } + + public static bool IsCollectionDefined(IDictionary collection) + { + return !(collection is ChangeTrackingDictionary changeTrackingDictionary && changeTrackingDictionary.IsUndefined); + } + + public static bool IsCollectionDefined(IReadOnlyDictionary collection) + { + return !(collection is ChangeTrackingDictionary changeTrackingDictionary && changeTrackingDictionary.IsUndefined); + } + + public static bool IsDefined(T? value) + where T : struct + { + return value.HasValue; + } + + public static bool IsDefined(object value) + { + return value != null; + } + + public static bool IsDefined(JsonElement value) + { + return value.ValueKind != JsonValueKind.Undefined; + } + + public static bool IsDefined(string value) + { + return value != null; + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/Utf8JsonRequestContent.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/Utf8JsonRequestContent.cs new file mode 100644 index 000000000000..2838ccf740d2 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Internal/Utf8JsonRequestContent.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.IO; +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting +{ + internal class Utf8JsonRequestContent : RequestContent + { + private readonly MemoryStream _stream; + private readonly RequestContent _content; + + public Utf8JsonRequestContent() + { + _stream = new MemoryStream(); + _content = Create(_stream); + JsonWriter = new Utf8JsonWriter(_stream); + } + + public Utf8JsonWriter JsonWriter { get; } + + public override async Task WriteToAsync(Stream stream, CancellationToken cancellationToken = default) + { + await JsonWriter.FlushAsync().ConfigureAwait(false); + await _content.WriteToAsync(stream, cancellationToken).ConfigureAwait(false); + } + + public override void WriteTo(Stream stream, CancellationToken cancellationToken = default) + { + JsonWriter.Flush(); + _content.WriteTo(stream, cancellationToken); + } + + public override bool TryComputeLength(out long length) + { + length = JsonWriter.BytesCommitted + JsonWriter.BytesPending; + return true; + } + + public override void Dispose() + { + JsonWriter.Dispose(); + _content.Dispose(); + _stream.Dispose(); + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/LongRunningOperation/ConnectorOperationSource.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/LongRunningOperation/ConnectorOperationSource.cs new file mode 100644 index 000000000000..c3f300b2e544 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/LongRunningOperation/ConnectorOperationSource.cs @@ -0,0 +1,36 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.ClientModel.Primitives; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting +{ + internal class ConnectorOperationSource : IOperationSource + { + private readonly ArmClient _client; + + internal ConnectorOperationSource(ArmClient client) + { + _client = client; + } + + ConnectorResource IOperationSource.CreateResult(Response response, CancellationToken cancellationToken) + { + var data = ModelReaderWriter.Read(response.Content); + return new ConnectorResource(_client, data); + } + + async ValueTask IOperationSource.CreateResultAsync(Response response, CancellationToken cancellationToken) + { + var data = ModelReaderWriter.Read(response.Content); + return await Task.FromResult(new ConnectorResource(_client, data)).ConfigureAwait(false); + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/LongRunningOperation/ImpactReportingArmOperation.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/LongRunningOperation/ImpactReportingArmOperation.cs new file mode 100644 index 000000000000..a7933fad4913 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/LongRunningOperation/ImpactReportingArmOperation.cs @@ -0,0 +1,94 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.ImpactReporting +{ +#pragma warning disable SA1649 // File name should match first type name + internal class ImpactReportingArmOperation : ArmOperation +#pragma warning restore SA1649 // File name should match first type name + { + private readonly OperationInternal _operation; + private readonly RehydrationToken? _completeRehydrationToken; + private readonly NextLinkOperationImplementation _nextLinkOperation; + private readonly string _operationId; + + /// Initializes a new instance of ImpactReportingArmOperation for mocking. + protected ImpactReportingArmOperation() + { + } + + internal ImpactReportingArmOperation(Response response, RehydrationToken? rehydrationToken = null) + { + _operation = OperationInternal.Succeeded(response); + _completeRehydrationToken = rehydrationToken; + _operationId = GetOperationId(rehydrationToken); + } + + internal ImpactReportingArmOperation(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Request request, Response response, OperationFinalStateVia finalStateVia, bool skipApiVersionOverride = false, string apiVersionOverrideValue = null) + { + var nextLinkOperation = NextLinkOperationImplementation.Create(pipeline, request.Method, request.Uri.ToUri(), response, finalStateVia, skipApiVersionOverride, apiVersionOverrideValue); + if (nextLinkOperation is NextLinkOperationImplementation nextLinkOperationValue) + { + _nextLinkOperation = nextLinkOperationValue; + _operationId = _nextLinkOperation.OperationId; + } + else + { + _completeRehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(request.Method, request.Uri.ToUri(), response, finalStateVia); + _operationId = GetOperationId(_completeRehydrationToken); + } + _operation = new OperationInternal(nextLinkOperation, clientDiagnostics, response, "ImpactReportingArmOperation", fallbackStrategy: new SequentialDelayStrategy()); + } + + private string GetOperationId(RehydrationToken? rehydrationToken) + { + if (rehydrationToken is null) + { + return null; + } + var lroDetails = ModelReaderWriter.Write(rehydrationToken, ModelReaderWriterOptions.Json).ToObjectFromJson>(); + return lroDetails["id"]; + } + /// + public override string Id => _operationId ?? NextLinkOperationImplementation.NotSet; + + /// + public override RehydrationToken? GetRehydrationToken() => _nextLinkOperation?.GetRehydrationToken() ?? _completeRehydrationToken; + + /// + public override bool HasCompleted => _operation.HasCompleted; + + /// + public override Response GetRawResponse() => _operation.RawResponse; + + /// + public override Response UpdateStatus(CancellationToken cancellationToken = default) => _operation.UpdateStatus(cancellationToken); + + /// + public override ValueTask UpdateStatusAsync(CancellationToken cancellationToken = default) => _operation.UpdateStatusAsync(cancellationToken); + + /// + public override Response WaitForCompletionResponse(CancellationToken cancellationToken = default) => _operation.WaitForCompletionResponse(cancellationToken); + + /// + public override Response WaitForCompletionResponse(TimeSpan pollingInterval, CancellationToken cancellationToken = default) => _operation.WaitForCompletionResponse(pollingInterval, cancellationToken); + + /// + public override ValueTask WaitForCompletionResponseAsync(CancellationToken cancellationToken = default) => _operation.WaitForCompletionResponseAsync(cancellationToken); + + /// + public override ValueTask WaitForCompletionResponseAsync(TimeSpan pollingInterval, CancellationToken cancellationToken = default) => _operation.WaitForCompletionResponseAsync(pollingInterval, cancellationToken); + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/LongRunningOperation/ImpactReportingArmOperationOfT.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/LongRunningOperation/ImpactReportingArmOperationOfT.cs new file mode 100644 index 000000000000..d8cff351e27f --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/LongRunningOperation/ImpactReportingArmOperationOfT.cs @@ -0,0 +1,100 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.ImpactReporting +{ +#pragma warning disable SA1649 // File name should match first type name + internal class ImpactReportingArmOperation : ArmOperation +#pragma warning restore SA1649 // File name should match first type name + { + private readonly OperationInternal _operation; + private readonly RehydrationToken? _completeRehydrationToken; + private readonly NextLinkOperationImplementation _nextLinkOperation; + private readonly string _operationId; + + /// Initializes a new instance of ImpactReportingArmOperation for mocking. + protected ImpactReportingArmOperation() + { + } + + internal ImpactReportingArmOperation(Response response, RehydrationToken? rehydrationToken = null) + { + _operation = OperationInternal.Succeeded(response.GetRawResponse(), response.Value); + _completeRehydrationToken = rehydrationToken; + _operationId = GetOperationId(rehydrationToken); + } + + internal ImpactReportingArmOperation(IOperationSource source, ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Request request, Response response, OperationFinalStateVia finalStateVia, bool skipApiVersionOverride = false, string apiVersionOverrideValue = null) + { + var nextLinkOperation = NextLinkOperationImplementation.Create(pipeline, request.Method, request.Uri.ToUri(), response, finalStateVia, skipApiVersionOverride, apiVersionOverrideValue); + if (nextLinkOperation is NextLinkOperationImplementation nextLinkOperationValue) + { + _nextLinkOperation = nextLinkOperationValue; + _operationId = _nextLinkOperation.OperationId; + } + else + { + _completeRehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(request.Method, request.Uri.ToUri(), response, finalStateVia); + _operationId = GetOperationId(_completeRehydrationToken); + } + _operation = new OperationInternal(NextLinkOperationImplementation.Create(source, nextLinkOperation), clientDiagnostics, response, "ImpactReportingArmOperation", fallbackStrategy: new SequentialDelayStrategy()); + } + + private string GetOperationId(RehydrationToken? rehydrationToken) + { + if (rehydrationToken is null) + { + return null; + } + var lroDetails = ModelReaderWriter.Write(rehydrationToken, ModelReaderWriterOptions.Json).ToObjectFromJson>(); + return lroDetails["id"]; + } + /// + public override string Id => _operationId ?? NextLinkOperationImplementation.NotSet; + + /// + public override RehydrationToken? GetRehydrationToken() => _nextLinkOperation?.GetRehydrationToken() ?? _completeRehydrationToken; + + /// + public override T Value => _operation.Value; + + /// + public override bool HasValue => _operation.HasValue; + + /// + public override bool HasCompleted => _operation.HasCompleted; + + /// + public override Response GetRawResponse() => _operation.RawResponse; + + /// + public override Response UpdateStatus(CancellationToken cancellationToken = default) => _operation.UpdateStatus(cancellationToken); + + /// + public override ValueTask UpdateStatusAsync(CancellationToken cancellationToken = default) => _operation.UpdateStatusAsync(cancellationToken); + + /// + public override Response WaitForCompletion(CancellationToken cancellationToken = default) => _operation.WaitForCompletion(cancellationToken); + + /// + public override Response WaitForCompletion(TimeSpan pollingInterval, CancellationToken cancellationToken = default) => _operation.WaitForCompletion(pollingInterval, cancellationToken); + + /// + public override ValueTask> WaitForCompletionAsync(CancellationToken cancellationToken = default) => _operation.WaitForCompletionAsync(cancellationToken); + + /// + public override ValueTask> WaitForCompletionAsync(TimeSpan pollingInterval, CancellationToken cancellationToken = default) => _operation.WaitForCompletionAsync(pollingInterval, cancellationToken); + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/LongRunningOperation/WorkloadImpactOperationSource.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/LongRunningOperation/WorkloadImpactOperationSource.cs new file mode 100644 index 000000000000..1f45a13f9012 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/LongRunningOperation/WorkloadImpactOperationSource.cs @@ -0,0 +1,36 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.ClientModel.Primitives; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting +{ + internal class WorkloadImpactOperationSource : IOperationSource + { + private readonly ArmClient _client; + + internal WorkloadImpactOperationSource(ArmClient client) + { + _client = client; + } + + WorkloadImpactResource IOperationSource.CreateResult(Response response, CancellationToken cancellationToken) + { + var data = ModelReaderWriter.Read(response.Content); + return new WorkloadImpactResource(_client, data); + } + + async ValueTask IOperationSource.CreateResultAsync(Response response, CancellationToken cancellationToken) + { + var data = ModelReaderWriter.Read(response.Content); + return await Task.FromResult(new WorkloadImpactResource(_client, data)).ConfigureAwait(false); + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ClientIncidentDetails.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ClientIncidentDetails.Serialization.cs new file mode 100644 index 000000000000..fa0e2e9aec75 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ClientIncidentDetails.Serialization.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public partial class ClientIncidentDetails : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ClientIncidentDetails)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(ClientIncidentId)) + { + writer.WritePropertyName("clientIncidentId"u8); + writer.WriteStringValue(ClientIncidentId); + } + if (Optional.IsDefined(ClientIncidentSource)) + { + writer.WritePropertyName("clientIncidentSource"u8); + writer.WriteStringValue(ClientIncidentSource.Value.ToString()); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ClientIncidentDetails IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ClientIncidentDetails)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeClientIncidentDetails(document.RootElement, options); + } + + internal static ClientIncidentDetails DeserializeClientIncidentDetails(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string clientIncidentId = default; + IncidentSource? clientIncidentSource = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("clientIncidentId"u8)) + { + clientIncidentId = property.Value.GetString(); + continue; + } + if (property.NameEquals("clientIncidentSource"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + clientIncidentSource = new IncidentSource(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ClientIncidentDetails(clientIncidentId, clientIncidentSource, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ClientIncidentDetails)} does not support writing '{options.Format}' format."); + } + } + + ClientIncidentDetails IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeClientIncidentDetails(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ClientIncidentDetails)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ClientIncidentDetails.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ClientIncidentDetails.cs new file mode 100644 index 000000000000..b205106b1f81 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ClientIncidentDetails.cs @@ -0,0 +1,69 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// Client incident details ex: incidentId , incident source. + public partial class ClientIncidentDetails + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + public ClientIncidentDetails() + { + } + + /// Initializes a new instance of . + /// Client incident id. ex : id of the incident created to investigate and address the impact if any. + /// Client incident source. ex : source system name where the incident is created. + /// Keeps track of any properties unknown to the library. + internal ClientIncidentDetails(string clientIncidentId, IncidentSource? clientIncidentSource, IDictionary serializedAdditionalRawData) + { + ClientIncidentId = clientIncidentId; + ClientIncidentSource = clientIncidentSource; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Client incident id. ex : id of the incident created to investigate and address the impact if any. + public string ClientIncidentId { get; set; } + /// Client incident source. ex : source system name where the incident is created. + public IncidentSource? ClientIncidentSource { get; set; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConfidenceLevel.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConfidenceLevel.cs new file mode 100644 index 000000000000..fc05addd46a7 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConfidenceLevel.cs @@ -0,0 +1,54 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// Degree of confidence on the impact being a platform issue. + public readonly partial struct ConfidenceLevel : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public ConfidenceLevel(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string LowValue = "Low"; + private const string MediumValue = "Medium"; + private const string HighValue = "High"; + + /// Low confidence on azure being the source of impact. + public static ConfidenceLevel Low { get; } = new ConfidenceLevel(LowValue); + /// Medium confidence on azure being the source of impact. + public static ConfidenceLevel Medium { get; } = new ConfidenceLevel(MediumValue); + /// High confidence on azure being the source of impact. + public static ConfidenceLevel High { get; } = new ConfidenceLevel(HighValue); + /// Determines if two values are the same. + public static bool operator ==(ConfidenceLevel left, ConfidenceLevel right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(ConfidenceLevel left, ConfidenceLevel right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator ConfidenceLevel(string value) => new ConfidenceLevel(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ConfidenceLevel other && Equals(other); + /// + public bool Equals(ConfidenceLevel other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + /// + public override string ToString() => _value; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Connectivity.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Connectivity.Serialization.cs new file mode 100644 index 000000000000..c3cae14e8d4e --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Connectivity.Serialization.cs @@ -0,0 +1,178 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public partial class Connectivity : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Connectivity)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(Protocol)) + { + writer.WritePropertyName("protocol"u8); + writer.WriteStringValue(Protocol.Value.ToString()); + } + if (Optional.IsDefined(Port)) + { + writer.WritePropertyName("port"u8); + writer.WriteNumberValue(Port.Value); + } + if (Optional.IsDefined(Source)) + { + writer.WritePropertyName("source"u8); + writer.WriteObjectValue(Source, options); + } + if (Optional.IsDefined(Target)) + { + writer.WritePropertyName("target"u8); + writer.WriteObjectValue(Target, options); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + Connectivity IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Connectivity)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeConnectivity(document.RootElement, options); + } + + internal static Connectivity DeserializeConnectivity(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + Protocol? protocol = default; + int? port = default; + SourceOrTarget source = default; + SourceOrTarget target = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("protocol"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + protocol = new Protocol(property.Value.GetString()); + continue; + } + if (property.NameEquals("port"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + port = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("source"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + source = SourceOrTarget.DeserializeSourceOrTarget(property.Value, options); + continue; + } + if (property.NameEquals("target"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + target = SourceOrTarget.DeserializeSourceOrTarget(property.Value, options); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new Connectivity(protocol, port, source, target, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(Connectivity)} does not support writing '{options.Format}' format."); + } + } + + Connectivity IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeConnectivity(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(Connectivity)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Connectivity.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Connectivity.cs new file mode 100644 index 000000000000..84038e4d0ca0 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Connectivity.cs @@ -0,0 +1,100 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// Details about connectivity issue. Applicable when root resource causing the issue is not identified. For example, when a VM is impacted due to a network issue, the impacted resource could be VM or the network. In such cases, the connectivity field will have the details about both VM and network. + public partial class Connectivity + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + public Connectivity() + { + } + + /// Initializes a new instance of . + /// Protocol used for the connection. + /// Port number for the connection. + /// Source from which the connection was attempted. + /// target which connection was attempted. + /// Keeps track of any properties unknown to the library. + internal Connectivity(Protocol? protocol, int? port, SourceOrTarget source, SourceOrTarget target, IDictionary serializedAdditionalRawData) + { + Protocol = protocol; + Port = port; + Source = source; + Target = target; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Protocol used for the connection. + public Protocol? Protocol { get; set; } + /// Port number for the connection. + public int? Port { get; set; } + /// Source from which the connection was attempted. + internal SourceOrTarget Source { get; set; } + /// Azure resource id, example /subscription/{subscription}/resourceGroup/{rg}/Microsoft.compute/virtualMachine/{vmName}. + public string SourceAzureResourceId + { + get => Source is null ? default : Source.AzureResourceId; + set + { + if (Source is null) + Source = new SourceOrTarget(); + Source.AzureResourceId = value; + } + } + + /// target which connection was attempted. + internal SourceOrTarget Target { get; set; } + /// Azure resource id, example /subscription/{subscription}/resourceGroup/{rg}/Microsoft.compute/virtualMachine/{vmName}. + public string TargetAzureResourceId + { + get => Target is null ? default : Target.AzureResourceId; + set + { + if (Target is null) + Target = new SourceOrTarget(); + Target.AzureResourceId = value; + } + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorListResult.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorListResult.Serialization.cs new file mode 100644 index 000000000000..e344a110788b --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorListResult.Serialization.cs @@ -0,0 +1,151 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + internal partial class ConnectorListResult : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ConnectorListResult)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (var item in Value) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(NextLink)) + { + writer.WritePropertyName("nextLink"u8); + writer.WriteStringValue(NextLink.AbsoluteUri); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ConnectorListResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ConnectorListResult)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeConnectorListResult(document.RootElement, options); + } + + internal static ConnectorListResult DeserializeConnectorListResult(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList value = default; + Uri nextLink = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("value"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(ConnectorData.DeserializeConnectorData(item, options)); + } + value = array; + continue; + } + if (property.NameEquals("nextLink"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + nextLink = new Uri(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ConnectorListResult(value, nextLink, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ConnectorListResult)} does not support writing '{options.Format}' format."); + } + } + + ConnectorListResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeConnectorListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ConnectorListResult)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorListResult.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorListResult.cs new file mode 100644 index 000000000000..917b75ae474a --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorListResult.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// The response of a Connector list operation. + internal partial class ConnectorListResult + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// The Connector items on this page. + /// is null. + internal ConnectorListResult(IEnumerable value) + { + Argument.AssertNotNull(value, nameof(value)); + + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The Connector items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal ConnectorListResult(IReadOnlyList value, Uri nextLink, IDictionary serializedAdditionalRawData) + { + Value = value; + NextLink = nextLink; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal ConnectorListResult() + { + } + + /// The Connector items on this page. + public IReadOnlyList Value { get; } + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorPatch.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorPatch.Serialization.cs new file mode 100644 index 000000000000..01edf123e42a --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorPatch.Serialization.cs @@ -0,0 +1,133 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public partial class ConnectorPatch : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ConnectorPatch)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ConnectorPatch IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ConnectorPatch)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeConnectorPatch(document.RootElement, options); + } + + internal static ConnectorPatch DeserializeConnectorPatch(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ConnectorUpdateProperties properties = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("properties"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = ConnectorUpdateProperties.DeserializeConnectorUpdateProperties(property.Value, options); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ConnectorPatch(properties, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ConnectorPatch)} does not support writing '{options.Format}' format."); + } + } + + ConnectorPatch IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeConnectorPatch(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ConnectorPatch)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorPatch.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorPatch.cs new file mode 100644 index 000000000000..2a13e3d48424 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorPatch.cs @@ -0,0 +1,76 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// The type used for update operations of the Connector. + public partial class ConnectorPatch + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + public ConnectorPatch() + { + } + + /// Initializes a new instance of . + /// The resource-specific properties for this resource. + /// Keeps track of any properties unknown to the library. + internal ConnectorPatch(ConnectorUpdateProperties properties, IDictionary serializedAdditionalRawData) + { + Properties = properties; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The resource-specific properties for this resource. + internal ConnectorUpdateProperties Properties { get; set; } + /// connector type. + public Platform? ConnectorType + { + get => Properties is null ? default : Properties.ConnectorType; + set + { + if (Properties is null) + Properties = new ConnectorUpdateProperties(); + Properties.ConnectorType = value; + } + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorProperties.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorProperties.Serialization.cs new file mode 100644 index 000000000000..1737f12407b7 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorProperties.Serialization.cs @@ -0,0 +1,180 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public partial class ConnectorProperties : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ConnectorProperties)} does not support writing '{format}' format."); + } + + if (options.Format != "W" && Optional.IsDefined(ProvisioningState)) + { + writer.WritePropertyName("provisioningState"u8); + writer.WriteStringValue(ProvisioningState.Value.ToString()); + } + if (options.Format != "W") + { + writer.WritePropertyName("connectorId"u8); + writer.WriteStringValue(ConnectorId); + } + if (options.Format != "W") + { + writer.WritePropertyName("tenantId"u8); + writer.WriteStringValue(TenantId); + } + writer.WritePropertyName("connectorType"u8); + writer.WriteStringValue(ConnectorType.ToString()); + if (options.Format != "W") + { + writer.WritePropertyName("lastRunTimeStamp"u8); + writer.WriteStringValue(LastRunTimeStamp, "O"); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ConnectorProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ConnectorProperties)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeConnectorProperties(document.RootElement, options); + } + + internal static ConnectorProperties DeserializeConnectorProperties(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ProvisioningState? provisioningState = default; + string connectorId = default; + string tenantId = default; + Platform connectorType = default; + DateTimeOffset lastRunTimeStamp = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("provisioningState"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + provisioningState = new ProvisioningState(property.Value.GetString()); + continue; + } + if (property.NameEquals("connectorId"u8)) + { + connectorId = property.Value.GetString(); + continue; + } + if (property.NameEquals("tenantId"u8)) + { + tenantId = property.Value.GetString(); + continue; + } + if (property.NameEquals("connectorType"u8)) + { + connectorType = new Platform(property.Value.GetString()); + continue; + } + if (property.NameEquals("lastRunTimeStamp"u8)) + { + lastRunTimeStamp = property.Value.GetDateTimeOffset("O"); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ConnectorProperties( + provisioningState, + connectorId, + tenantId, + connectorType, + lastRunTimeStamp, + serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ConnectorProperties)} does not support writing '{options.Format}' format."); + } + } + + ConnectorProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeConnectorProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ConnectorProperties)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorProperties.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorProperties.cs new file mode 100644 index 000000000000..669e13c50b6a --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorProperties.cs @@ -0,0 +1,94 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// Details of the Connector. + public partial class ConnectorProperties + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// unique id of the connector. + /// tenant id of this connector. + /// connector type. + /// last run time stamp of this connector in UTC time zone. + public ConnectorProperties(string connectorId, string tenantId, Platform connectorType, DateTimeOffset lastRunTimeStamp) + { + ConnectorId = connectorId; + TenantId = tenantId; + ConnectorType = connectorType; + LastRunTimeStamp = lastRunTimeStamp; + } + + /// Initializes a new instance of . + /// Resource provisioning state. + /// unique id of the connector. + /// tenant id of this connector. + /// connector type. + /// last run time stamp of this connector in UTC time zone. + /// Keeps track of any properties unknown to the library. + internal ConnectorProperties(ProvisioningState? provisioningState, string connectorId, string tenantId, Platform connectorType, DateTimeOffset lastRunTimeStamp, IDictionary serializedAdditionalRawData) + { + ProvisioningState = provisioningState; + ConnectorId = connectorId; + TenantId = tenantId; + ConnectorType = connectorType; + LastRunTimeStamp = lastRunTimeStamp; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal ConnectorProperties() + { + } + + /// Resource provisioning state. + public ProvisioningState? ProvisioningState { get; } + /// unique id of the connector. + public string ConnectorId { get; } + /// tenant id of this connector. + public string TenantId { get; } + /// connector type. + public Platform ConnectorType { get; set; } + /// last run time stamp of this connector in UTC time zone. + public DateTimeOffset LastRunTimeStamp { get; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorUpdateProperties.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorUpdateProperties.Serialization.cs new file mode 100644 index 000000000000..2d50fbfb4791 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorUpdateProperties.Serialization.cs @@ -0,0 +1,133 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + internal partial class ConnectorUpdateProperties : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ConnectorUpdateProperties)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(ConnectorType)) + { + writer.WritePropertyName("connectorType"u8); + writer.WriteStringValue(ConnectorType.Value.ToString()); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ConnectorUpdateProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ConnectorUpdateProperties)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeConnectorUpdateProperties(document.RootElement, options); + } + + internal static ConnectorUpdateProperties DeserializeConnectorUpdateProperties(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + Platform? connectorType = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("connectorType"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + connectorType = new Platform(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ConnectorUpdateProperties(connectorType, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ConnectorUpdateProperties)} does not support writing '{options.Format}' format."); + } + } + + ConnectorUpdateProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeConnectorUpdateProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ConnectorUpdateProperties)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorUpdateProperties.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorUpdateProperties.cs new file mode 100644 index 000000000000..3521d7cb9e48 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ConnectorUpdateProperties.cs @@ -0,0 +1,65 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// The updatable properties of the Connector. + internal partial class ConnectorUpdateProperties + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + public ConnectorUpdateProperties() + { + } + + /// Initializes a new instance of . + /// connector type. + /// Keeps track of any properties unknown to the library. + internal ConnectorUpdateProperties(Platform? connectorType, IDictionary serializedAdditionalRawData) + { + ConnectorType = connectorType; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// connector type. + public Platform? ConnectorType { get; set; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Content.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Content.Serialization.cs new file mode 100644 index 000000000000..a036f56fd40b --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Content.Serialization.cs @@ -0,0 +1,134 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public partial class Content : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Content)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("title"u8); + writer.WriteStringValue(Title); + writer.WritePropertyName("description"u8); + writer.WriteStringValue(Description); + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + Content IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Content)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeContent(document.RootElement, options); + } + + internal static Content DeserializeContent(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string title = default; + string description = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("title"u8)) + { + title = property.Value.GetString(); + continue; + } + if (property.NameEquals("description"u8)) + { + description = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new Content(title, description, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(Content)} does not support writing '{options.Format}' format."); + } + } + + Content IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeContent(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(Content)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Content.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Content.cs new file mode 100644 index 000000000000..e04c8545c8f8 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Content.cs @@ -0,0 +1,82 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// Article details of the insight like title, description etc. + public partial class Content + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// Title of the insight. + /// Description of the insight. + /// or is null. + public Content(string title, string description) + { + Argument.AssertNotNull(title, nameof(title)); + Argument.AssertNotNull(description, nameof(description)); + + Title = title; + Description = description; + } + + /// Initializes a new instance of . + /// Title of the insight. + /// Description of the insight. + /// Keeps track of any properties unknown to the library. + internal Content(string title, string description, IDictionary serializedAdditionalRawData) + { + Title = title; + Description = description; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal Content() + { + } + + /// Title of the insight. + public string Title { get; set; } + /// Description of the insight. + public string Description { get; set; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ErrorDetailProperties.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ErrorDetailProperties.Serialization.cs new file mode 100644 index 000000000000..a4eebaa4a7da --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ErrorDetailProperties.Serialization.cs @@ -0,0 +1,140 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public partial class ErrorDetailProperties : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ErrorDetailProperties)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(ErrorCode)) + { + writer.WritePropertyName("errorCode"u8); + writer.WriteStringValue(ErrorCode); + } + if (Optional.IsDefined(ErrorMessage)) + { + writer.WritePropertyName("errorMessage"u8); + writer.WriteStringValue(ErrorMessage); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ErrorDetailProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ErrorDetailProperties)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeErrorDetailProperties(document.RootElement, options); + } + + internal static ErrorDetailProperties DeserializeErrorDetailProperties(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string errorCode = default; + string errorMessage = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("errorCode"u8)) + { + errorCode = property.Value.GetString(); + continue; + } + if (property.NameEquals("errorMessage"u8)) + { + errorMessage = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ErrorDetailProperties(errorCode, errorMessage, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ErrorDetailProperties)} does not support writing '{options.Format}' format."); + } + } + + ErrorDetailProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeErrorDetailProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ErrorDetailProperties)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ErrorDetailProperties.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ErrorDetailProperties.cs new file mode 100644 index 000000000000..f6568d77a03e --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ErrorDetailProperties.cs @@ -0,0 +1,69 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// ARM error code and error message associated with the impact. + public partial class ErrorDetailProperties + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + public ErrorDetailProperties() + { + } + + /// Initializes a new instance of . + /// ARM Error code associated with the impact. + /// ARM Error Message associated with the impact. + /// Keeps track of any properties unknown to the library. + internal ErrorDetailProperties(string errorCode, string errorMessage, IDictionary serializedAdditionalRawData) + { + ErrorCode = errorCode; + ErrorMessage = errorMessage; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// ARM Error code associated with the impact. + public string ErrorCode { get; set; } + /// ARM Error Message associated with the impact. + public string ErrorMessage { get; set; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ExpectedValueRange.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ExpectedValueRange.Serialization.cs new file mode 100644 index 000000000000..de74004dd171 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ExpectedValueRange.Serialization.cs @@ -0,0 +1,134 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public partial class ExpectedValueRange : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ExpectedValueRange)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("min"u8); + writer.WriteNumberValue(Min); + writer.WritePropertyName("max"u8); + writer.WriteNumberValue(Max); + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ExpectedValueRange IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ExpectedValueRange)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeExpectedValueRange(document.RootElement, options); + } + + internal static ExpectedValueRange DeserializeExpectedValueRange(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + double min = default; + double max = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("min"u8)) + { + min = property.Value.GetDouble(); + continue; + } + if (property.NameEquals("max"u8)) + { + max = property.Value.GetDouble(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ExpectedValueRange(min, max, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ExpectedValueRange)} does not support writing '{options.Format}' format."); + } + } + + ExpectedValueRange IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeExpectedValueRange(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ExpectedValueRange)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ExpectedValueRange.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ExpectedValueRange.cs new file mode 100644 index 000000000000..b6de2f1af960 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ExpectedValueRange.cs @@ -0,0 +1,78 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// Max and Min Threshold values for the metric. + public partial class ExpectedValueRange + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// Min threshold value for the metric. + /// Max threshold value for the metric. + public ExpectedValueRange(double min, double max) + { + Min = min; + Max = max; + } + + /// Initializes a new instance of . + /// Min threshold value for the metric. + /// Max threshold value for the metric. + /// Keeps track of any properties unknown to the library. + internal ExpectedValueRange(double min, double max, IDictionary serializedAdditionalRawData) + { + Min = min; + Max = max; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal ExpectedValueRange() + { + } + + /// Min threshold value for the metric. + public double Min { get; set; } + /// Max threshold value for the metric. + public double Max { get; set; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactCategoryListResult.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactCategoryListResult.Serialization.cs new file mode 100644 index 000000000000..5396a6ba36f1 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactCategoryListResult.Serialization.cs @@ -0,0 +1,151 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + internal partial class ImpactCategoryListResult : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ImpactCategoryListResult)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (var item in Value) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(NextLink)) + { + writer.WritePropertyName("nextLink"u8); + writer.WriteStringValue(NextLink.AbsoluteUri); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ImpactCategoryListResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ImpactCategoryListResult)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeImpactCategoryListResult(document.RootElement, options); + } + + internal static ImpactCategoryListResult DeserializeImpactCategoryListResult(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList value = default; + Uri nextLink = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("value"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(ImpactCategoryData.DeserializeImpactCategoryData(item, options)); + } + value = array; + continue; + } + if (property.NameEquals("nextLink"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + nextLink = new Uri(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ImpactCategoryListResult(value, nextLink, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ImpactCategoryListResult)} does not support writing '{options.Format}' format."); + } + } + + ImpactCategoryListResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeImpactCategoryListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ImpactCategoryListResult)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactCategoryListResult.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactCategoryListResult.cs new file mode 100644 index 000000000000..ba44039d1f6c --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactCategoryListResult.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// The response of a ImpactCategory list operation. + internal partial class ImpactCategoryListResult + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// The ImpactCategory items on this page. + /// is null. + internal ImpactCategoryListResult(IEnumerable value) + { + Argument.AssertNotNull(value, nameof(value)); + + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The ImpactCategory items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal ImpactCategoryListResult(IReadOnlyList value, Uri nextLink, IDictionary serializedAdditionalRawData) + { + Value = value; + NextLink = nextLink; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal ImpactCategoryListResult() + { + } + + /// The ImpactCategory items on this page. + public IReadOnlyList Value { get; } + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactCategoryProperties.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactCategoryProperties.Serialization.cs new file mode 100644 index 000000000000..be7ee5afcf86 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactCategoryProperties.Serialization.cs @@ -0,0 +1,194 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public partial class ImpactCategoryProperties : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ImpactCategoryProperties)} does not support writing '{format}' format."); + } + + if (options.Format != "W" && Optional.IsDefined(ProvisioningState)) + { + writer.WritePropertyName("provisioningState"u8); + writer.WriteStringValue(ProvisioningState.Value.ToString()); + } + writer.WritePropertyName("categoryId"u8); + writer.WriteStringValue(CategoryId); + if (Optional.IsDefined(ParentCategoryId)) + { + writer.WritePropertyName("parentCategoryId"u8); + writer.WriteStringValue(ParentCategoryId); + } + if (Optional.IsDefined(Description)) + { + writer.WritePropertyName("description"u8); + writer.WriteStringValue(Description); + } + if (Optional.IsCollectionDefined(RequiredImpactProperties)) + { + writer.WritePropertyName("requiredImpactProperties"u8); + writer.WriteStartArray(); + foreach (var item in RequiredImpactProperties) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ImpactCategoryProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ImpactCategoryProperties)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeImpactCategoryProperties(document.RootElement, options); + } + + internal static ImpactCategoryProperties DeserializeImpactCategoryProperties(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ProvisioningState? provisioningState = default; + string categoryId = default; + string parentCategoryId = default; + string description = default; + IReadOnlyList requiredImpactProperties = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("provisioningState"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + provisioningState = new ProvisioningState(property.Value.GetString()); + continue; + } + if (property.NameEquals("categoryId"u8)) + { + categoryId = property.Value.GetString(); + continue; + } + if (property.NameEquals("parentCategoryId"u8)) + { + parentCategoryId = property.Value.GetString(); + continue; + } + if (property.NameEquals("description"u8)) + { + description = property.Value.GetString(); + continue; + } + if (property.NameEquals("requiredImpactProperties"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(Models.RequiredImpactProperties.DeserializeRequiredImpactProperties(item, options)); + } + requiredImpactProperties = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ImpactCategoryProperties( + provisioningState, + categoryId, + parentCategoryId, + description, + requiredImpactProperties ?? new ChangeTrackingList(), + serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ImpactCategoryProperties)} does not support writing '{options.Format}' format."); + } + } + + ImpactCategoryProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeImpactCategoryProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ImpactCategoryProperties)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactCategoryProperties.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactCategoryProperties.cs new file mode 100644 index 000000000000..af4c8b3aac08 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactCategoryProperties.cs @@ -0,0 +1,92 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// Impact category properties. + public partial class ImpactCategoryProperties + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// Unique ID of the category. + /// is null. + internal ImpactCategoryProperties(string categoryId) + { + Argument.AssertNotNull(categoryId, nameof(categoryId)); + + CategoryId = categoryId; + RequiredImpactProperties = new ChangeTrackingList(); + } + + /// Initializes a new instance of . + /// Resource provisioning state. + /// Unique ID of the category. + /// Unique ID of the parent category. + /// Description of the category. + /// The workloadImpact properties which are required when reporting with the impact category. + /// Keeps track of any properties unknown to the library. + internal ImpactCategoryProperties(ProvisioningState? provisioningState, string categoryId, string parentCategoryId, string description, IReadOnlyList requiredImpactProperties, IDictionary serializedAdditionalRawData) + { + ProvisioningState = provisioningState; + CategoryId = categoryId; + ParentCategoryId = parentCategoryId; + Description = description; + RequiredImpactProperties = requiredImpactProperties; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal ImpactCategoryProperties() + { + } + + /// Resource provisioning state. + public ProvisioningState? ProvisioningState { get; } + /// Unique ID of the category. + public string CategoryId { get; } + /// Unique ID of the parent category. + public string ParentCategoryId { get; } + /// Description of the category. + public string Description { get; } + /// The workloadImpact properties which are required when reporting with the impact category. + public IReadOnlyList RequiredImpactProperties { get; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactDetails.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactDetails.Serialization.cs new file mode 100644 index 000000000000..d96af8bbb134 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactDetails.Serialization.cs @@ -0,0 +1,157 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public partial class ImpactDetails : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ImpactDetails)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("impactedResourceId"u8); + writer.WriteStringValue(ImpactedResourceId); + writer.WritePropertyName("startTime"u8); + writer.WriteStringValue(StartOn, "O"); + if (Optional.IsDefined(EndOn)) + { + writer.WritePropertyName("endTime"u8); + writer.WriteStringValue(EndOn.Value, "O"); + } + writer.WritePropertyName("impactId"u8); + writer.WriteStringValue(ImpactId); + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ImpactDetails IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ImpactDetails)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeImpactDetails(document.RootElement, options); + } + + internal static ImpactDetails DeserializeImpactDetails(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string impactedResourceId = default; + DateTimeOffset startTime = default; + DateTimeOffset? endTime = default; + string impactId = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("impactedResourceId"u8)) + { + impactedResourceId = property.Value.GetString(); + continue; + } + if (property.NameEquals("startTime"u8)) + { + startTime = property.Value.GetDateTimeOffset("O"); + continue; + } + if (property.NameEquals("endTime"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + endTime = property.Value.GetDateTimeOffset("O"); + continue; + } + if (property.NameEquals("impactId"u8)) + { + impactId = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ImpactDetails(impactedResourceId, startTime, endTime, impactId, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ImpactDetails)} does not support writing '{options.Format}' format."); + } + } + + ImpactDetails IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeImpactDetails(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ImpactDetails)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactDetails.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactDetails.cs new file mode 100644 index 000000000000..9c12f1480dc1 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ImpactDetails.cs @@ -0,0 +1,92 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// details of of the impact for which insight has been generated. + public partial class ImpactDetails + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// List of impacted Azure resources. + /// Time at which impact was started according to reported impact. + /// Azure Id of the impact. + /// or is null. + public ImpactDetails(string impactedResourceId, DateTimeOffset startOn, string impactId) + { + Argument.AssertNotNull(impactedResourceId, nameof(impactedResourceId)); + Argument.AssertNotNull(impactId, nameof(impactId)); + + ImpactedResourceId = impactedResourceId; + StartOn = startOn; + ImpactId = impactId; + } + + /// Initializes a new instance of . + /// List of impacted Azure resources. + /// Time at which impact was started according to reported impact. + /// Time at which impact was ended according to reported impact. + /// Azure Id of the impact. + /// Keeps track of any properties unknown to the library. + internal ImpactDetails(string impactedResourceId, DateTimeOffset startOn, DateTimeOffset? endOn, string impactId, IDictionary serializedAdditionalRawData) + { + ImpactedResourceId = impactedResourceId; + StartOn = startOn; + EndOn = endOn; + ImpactId = impactId; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal ImpactDetails() + { + } + + /// List of impacted Azure resources. + public string ImpactedResourceId { get; set; } + /// Time at which impact was started according to reported impact. + public DateTimeOffset StartOn { get; set; } + /// Time at which impact was ended according to reported impact. + public DateTimeOffset? EndOn { get; set; } + /// Azure Id of the impact. + public string ImpactId { get; set; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/IncidentSource.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/IncidentSource.cs new file mode 100644 index 000000000000..b1a1a24ecc52 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/IncidentSource.cs @@ -0,0 +1,60 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// List of incident interfaces. + public readonly partial struct IncidentSource : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public IncidentSource(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string AzureDevopsValue = "AzureDevops"; + private const string ICMValue = "ICM"; + private const string JiraValue = "Jira"; + private const string ServiceNowValue = "ServiceNow"; + private const string OtherValue = "Other"; + + /// When source of Incident is AzureDevops. + public static IncidentSource AzureDevops { get; } = new IncidentSource(AzureDevopsValue); + /// When source of Incident is Microsoft ICM. + public static IncidentSource ICM { get; } = new IncidentSource(ICMValue); + /// When source of Incident is Jira. + public static IncidentSource Jira { get; } = new IncidentSource(JiraValue); + /// When source of Incident is ServiceNow. + public static IncidentSource ServiceNow { get; } = new IncidentSource(ServiceNowValue); + /// When source of Incident is Other. + public static IncidentSource Other { get; } = new IncidentSource(OtherValue); + /// Determines if two values are the same. + public static bool operator ==(IncidentSource left, IncidentSource right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(IncidentSource left, IncidentSource right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator IncidentSource(string value) => new IncidentSource(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is IncidentSource other && Equals(other); + /// + public bool Equals(IncidentSource other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + /// + public override string ToString() => _value; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightListResult.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightListResult.Serialization.cs new file mode 100644 index 000000000000..dfdb97b7f023 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightListResult.Serialization.cs @@ -0,0 +1,151 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + internal partial class InsightListResult : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InsightListResult)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (var item in Value) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(NextLink)) + { + writer.WritePropertyName("nextLink"u8); + writer.WriteStringValue(NextLink.AbsoluteUri); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + InsightListResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InsightListResult)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInsightListResult(document.RootElement, options); + } + + internal static InsightListResult DeserializeInsightListResult(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList value = default; + Uri nextLink = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("value"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(InsightData.DeserializeInsightData(item, options)); + } + value = array; + continue; + } + if (property.NameEquals("nextLink"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + nextLink = new Uri(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new InsightListResult(value, nextLink, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InsightListResult)} does not support writing '{options.Format}' format."); + } + } + + InsightListResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeInsightListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InsightListResult)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightListResult.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightListResult.cs new file mode 100644 index 000000000000..79f58ae35662 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightListResult.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// The response of a Insight list operation. + internal partial class InsightListResult + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// The Insight items on this page. + /// is null. + internal InsightListResult(IEnumerable value) + { + Argument.AssertNotNull(value, nameof(value)); + + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The Insight items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal InsightListResult(IReadOnlyList value, Uri nextLink, IDictionary serializedAdditionalRawData) + { + Value = value; + NextLink = nextLink; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal InsightListResult() + { + } + + /// The Insight items on this page. + public IReadOnlyList Value { get; } + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightProperties.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightProperties.Serialization.cs new file mode 100644 index 000000000000..2ff8164fd197 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightProperties.Serialization.cs @@ -0,0 +1,239 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public partial class InsightProperties : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InsightProperties)} does not support writing '{format}' format."); + } + + if (options.Format != "W" && Optional.IsDefined(ProvisioningState)) + { + writer.WritePropertyName("provisioningState"u8); + writer.WriteStringValue(ProvisioningState.Value.ToString()); + } + writer.WritePropertyName("category"u8); + writer.WriteStringValue(Category); + if (Optional.IsDefined(Status)) + { + writer.WritePropertyName("status"u8); + writer.WriteStringValue(Status); + } + if (Optional.IsDefined(EventId)) + { + writer.WritePropertyName("eventId"u8); + writer.WriteStringValue(EventId); + } + if (Optional.IsDefined(GroupId)) + { + writer.WritePropertyName("groupId"u8); + writer.WriteStringValue(GroupId); + } + writer.WritePropertyName("content"u8); + writer.WriteObjectValue(Content, options); + if (Optional.IsDefined(EventOn)) + { + writer.WritePropertyName("eventTime"u8); + writer.WriteStringValue(EventOn.Value, "O"); + } + writer.WritePropertyName("insightUniqueId"u8); + writer.WriteStringValue(InsightUniqueId); + writer.WritePropertyName("impact"u8); + writer.WriteObjectValue(Impact, options); + if (Optional.IsDefined(AdditionalDetails)) + { + writer.WritePropertyName("additionalDetails"u8); + writer.WriteObjectValue(AdditionalDetails, options); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + InsightProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InsightProperties)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInsightProperties(document.RootElement, options); + } + + internal static InsightProperties DeserializeInsightProperties(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ProvisioningState? provisioningState = default; + string category = default; + string status = default; + string eventId = default; + string groupId = default; + Content content = default; + DateTimeOffset? eventTime = default; + string insightUniqueId = default; + ImpactDetails impact = default; + InsightPropertiesAdditionalDetails additionalDetails = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("provisioningState"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + provisioningState = new ProvisioningState(property.Value.GetString()); + continue; + } + if (property.NameEquals("category"u8)) + { + category = property.Value.GetString(); + continue; + } + if (property.NameEquals("status"u8)) + { + status = property.Value.GetString(); + continue; + } + if (property.NameEquals("eventId"u8)) + { + eventId = property.Value.GetString(); + continue; + } + if (property.NameEquals("groupId"u8)) + { + groupId = property.Value.GetString(); + continue; + } + if (property.NameEquals("content"u8)) + { + content = Content.DeserializeContent(property.Value, options); + continue; + } + if (property.NameEquals("eventTime"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + eventTime = property.Value.GetDateTimeOffset("O"); + continue; + } + if (property.NameEquals("insightUniqueId"u8)) + { + insightUniqueId = property.Value.GetString(); + continue; + } + if (property.NameEquals("impact"u8)) + { + impact = ImpactDetails.DeserializeImpactDetails(property.Value, options); + continue; + } + if (property.NameEquals("additionalDetails"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + additionalDetails = InsightPropertiesAdditionalDetails.DeserializeInsightPropertiesAdditionalDetails(property.Value, options); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new InsightProperties( + provisioningState, + category, + status, + eventId, + groupId, + content, + eventTime, + insightUniqueId, + impact, + additionalDetails, + serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InsightProperties)} does not support writing '{options.Format}' format."); + } + } + + InsightProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeInsightProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InsightProperties)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightProperties.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightProperties.cs new file mode 100644 index 000000000000..e9b3a2c49686 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightProperties.cs @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// Impact category properties. + public partial class InsightProperties + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// category of the insight. + /// Contains title & description for the insight. + /// unique id of the insight. + /// details of of the impact for which insight has been generated. + /// , , or is null. + public InsightProperties(string category, Content content, string insightUniqueId, ImpactDetails impact) + { + Argument.AssertNotNull(category, nameof(category)); + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNull(insightUniqueId, nameof(insightUniqueId)); + Argument.AssertNotNull(impact, nameof(impact)); + + Category = category; + Content = content; + InsightUniqueId = insightUniqueId; + Impact = impact; + } + + /// Initializes a new instance of . + /// Resource provisioning state. + /// category of the insight. + /// status of the insight. example resolved, repaired, other. + /// Identifier of the event that has been correlated with this insight. This can be used to aggregate insights for the same event. + /// Identifier that can be used to group similar insights. + /// Contains title & description for the insight. + /// Time of the event, which has been correlated the impact. + /// unique id of the insight. + /// details of of the impact for which insight has been generated. + /// additional details of the insight. + /// Keeps track of any properties unknown to the library. + internal InsightProperties(ProvisioningState? provisioningState, string category, string status, string eventId, string groupId, Content content, DateTimeOffset? eventOn, string insightUniqueId, ImpactDetails impact, InsightPropertiesAdditionalDetails additionalDetails, IDictionary serializedAdditionalRawData) + { + ProvisioningState = provisioningState; + Category = category; + Status = status; + EventId = eventId; + GroupId = groupId; + Content = content; + EventOn = eventOn; + InsightUniqueId = insightUniqueId; + Impact = impact; + AdditionalDetails = additionalDetails; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal InsightProperties() + { + } + + /// Resource provisioning state. + public ProvisioningState? ProvisioningState { get; } + /// category of the insight. + public string Category { get; set; } + /// status of the insight. example resolved, repaired, other. + public string Status { get; set; } + /// Identifier of the event that has been correlated with this insight. This can be used to aggregate insights for the same event. + public string EventId { get; set; } + /// Identifier that can be used to group similar insights. + public string GroupId { get; set; } + /// Contains title & description for the insight. + public Content Content { get; set; } + /// Time of the event, which has been correlated the impact. + public DateTimeOffset? EventOn { get; set; } + /// unique id of the insight. + public string InsightUniqueId { get; set; } + /// details of of the impact for which insight has been generated. + public ImpactDetails Impact { get; set; } + /// additional details of the insight. + public InsightPropertiesAdditionalDetails AdditionalDetails { get; set; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightPropertiesAdditionalDetails.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightPropertiesAdditionalDetails.Serialization.cs new file mode 100644 index 000000000000..ad5344880f67 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightPropertiesAdditionalDetails.Serialization.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public partial class InsightPropertiesAdditionalDetails : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InsightPropertiesAdditionalDetails)} does not support writing '{format}' format."); + } + + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + InsightPropertiesAdditionalDetails IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(InsightPropertiesAdditionalDetails)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeInsightPropertiesAdditionalDetails(document.RootElement, options); + } + + internal static InsightPropertiesAdditionalDetails DeserializeInsightPropertiesAdditionalDetails(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new InsightPropertiesAdditionalDetails(serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(InsightPropertiesAdditionalDetails)} does not support writing '{options.Format}' format."); + } + } + + InsightPropertiesAdditionalDetails IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeInsightPropertiesAdditionalDetails(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(InsightPropertiesAdditionalDetails)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightPropertiesAdditionalDetails.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightPropertiesAdditionalDetails.cs new file mode 100644 index 000000000000..9c4878c129cf --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/InsightPropertiesAdditionalDetails.cs @@ -0,0 +1,60 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// The InsightPropertiesAdditionalDetails. + public partial class InsightPropertiesAdditionalDetails + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + public InsightPropertiesAdditionalDetails() + { + } + + /// Initializes a new instance of . + /// Keeps track of any properties unknown to the library. + internal InsightPropertiesAdditionalDetails(IDictionary serializedAdditionalRawData) + { + _serializedAdditionalRawData = serializedAdditionalRawData; + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/MetricUnit.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/MetricUnit.cs new file mode 100644 index 000000000000..0afe0b5c1194 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/MetricUnit.cs @@ -0,0 +1,81 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// List of unit of the metric. + public readonly partial struct MetricUnit : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public MetricUnit(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string ByteSecondsValue = "ByteSeconds"; + private const string BytesValue = "Bytes"; + private const string BytesPerSecondValue = "BytesPerSecond"; + private const string CoresValue = "Cores"; + private const string CountValue = "Count"; + private const string CountPerSecondValue = "CountPerSecond"; + private const string MilliCoresValue = "MilliCores"; + private const string MilliSecondsValue = "MilliSeconds"; + private const string NanoCoresValue = "NanoCores"; + private const string PercentValue = "Percent"; + private const string SecondsValue = "Seconds"; + private const string OtherValue = "Other"; + + /// When measurement is in ByteSeconds. + public static MetricUnit ByteSeconds { get; } = new MetricUnit(ByteSecondsValue); + /// When measurement is in Bytes. + public static MetricUnit Bytes { get; } = new MetricUnit(BytesValue); + /// When measurement is in BytesPerSecond. + public static MetricUnit BytesPerSecond { get; } = new MetricUnit(BytesPerSecondValue); + /// When measurement is in Cores. + public static MetricUnit Cores { get; } = new MetricUnit(CoresValue); + /// When measurement is in Count. + public static MetricUnit Count { get; } = new MetricUnit(CountValue); + /// When measurement is in CountPerSecond. + public static MetricUnit CountPerSecond { get; } = new MetricUnit(CountPerSecondValue); + /// When measurement is in MilliCores. + public static MetricUnit MilliCores { get; } = new MetricUnit(MilliCoresValue); + /// When measurement is in MilliSeconds. + public static MetricUnit MilliSeconds { get; } = new MetricUnit(MilliSecondsValue); + /// When measurement is in NanoCores. + public static MetricUnit NanoCores { get; } = new MetricUnit(NanoCoresValue); + /// When measurement is in Percent. + public static MetricUnit Percent { get; } = new MetricUnit(PercentValue); + /// When measurement is in Seconds. + public static MetricUnit Seconds { get; } = new MetricUnit(SecondsValue); + /// When measurement is in Other than listed. + public static MetricUnit Other { get; } = new MetricUnit(OtherValue); + /// Determines if two values are the same. + public static bool operator ==(MetricUnit left, MetricUnit right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(MetricUnit left, MetricUnit right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator MetricUnit(string value) => new MetricUnit(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is MetricUnit other && Equals(other); + /// + public bool Equals(MetricUnit other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + /// + public override string ToString() => _value; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Performance.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Performance.Serialization.cs new file mode 100644 index 000000000000..20926864e2ea --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Performance.Serialization.cs @@ -0,0 +1,195 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public partial class Performance : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Performance)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(MetricName)) + { + writer.WritePropertyName("metricName"u8); + writer.WriteStringValue(MetricName); + } + if (Optional.IsDefined(Expected)) + { + writer.WritePropertyName("expected"u8); + writer.WriteNumberValue(Expected.Value); + } + if (Optional.IsDefined(Actual)) + { + writer.WritePropertyName("actual"u8); + writer.WriteNumberValue(Actual.Value); + } + if (Optional.IsDefined(ExpectedValueRange)) + { + writer.WritePropertyName("expectedValueRange"u8); + writer.WriteObjectValue(ExpectedValueRange, options); + } + if (Optional.IsDefined(Unit)) + { + writer.WritePropertyName("unit"u8); + writer.WriteStringValue(Unit.Value.ToString()); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + Performance IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Performance)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializePerformance(document.RootElement, options); + } + + internal static Performance DeserializePerformance(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string metricName = default; + double? expected = default; + double? actual = default; + ExpectedValueRange expectedValueRange = default; + MetricUnit? unit = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("metricName"u8)) + { + metricName = property.Value.GetString(); + continue; + } + if (property.NameEquals("expected"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + expected = property.Value.GetDouble(); + continue; + } + if (property.NameEquals("actual"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + actual = property.Value.GetDouble(); + continue; + } + if (property.NameEquals("expectedValueRange"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + expectedValueRange = ExpectedValueRange.DeserializeExpectedValueRange(property.Value, options); + continue; + } + if (property.NameEquals("unit"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + unit = new MetricUnit(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new Performance( + metricName, + expected, + actual, + expectedValueRange, + unit, + serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(Performance)} does not support writing '{options.Format}' format."); + } + } + + Performance IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializePerformance(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(Performance)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Performance.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Performance.cs new file mode 100644 index 000000000000..52de89fe19b3 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Performance.cs @@ -0,0 +1,81 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// Details about impacted performance metrics. Applicable for performance related impact. + public partial class Performance + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + public Performance() + { + } + + /// Initializes a new instance of . + /// Name of the Metric examples: Disk, IOPs, CPU, GPU, Memory, details can be found from /impactCategories API. + /// Threshold value for the metric. + /// Observed value for the metric. + /// Max and Min Threshold values for the metric. + /// Unit of the metric ex: Bytes, Percentage, Count, Seconds, Milliseconds, Bytes/Second, Count/Second, etc.., Other. + /// Keeps track of any properties unknown to the library. + internal Performance(string metricName, double? expected, double? actual, ExpectedValueRange expectedValueRange, MetricUnit? unit, IDictionary serializedAdditionalRawData) + { + MetricName = metricName; + Expected = expected; + Actual = actual; + ExpectedValueRange = expectedValueRange; + Unit = unit; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Name of the Metric examples: Disk, IOPs, CPU, GPU, Memory, details can be found from /impactCategories API. + public string MetricName { get; set; } + /// Threshold value for the metric. + public double? Expected { get; set; } + /// Observed value for the metric. + public double? Actual { get; set; } + /// Max and Min Threshold values for the metric. + public ExpectedValueRange ExpectedValueRange { get; set; } + /// Unit of the metric ex: Bytes, Percentage, Count, Seconds, Milliseconds, Bytes/Second, Count/Second, etc.., Other. + public MetricUnit? Unit { get; set; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Platform.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Platform.cs new file mode 100644 index 000000000000..978aaaa0e070 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Platform.cs @@ -0,0 +1,48 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// Enum for connector types. + public readonly partial struct Platform : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public Platform(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string AzureMonitorValue = "AzureMonitor"; + + /// Type of Azure Monitor. + public static Platform AzureMonitor { get; } = new Platform(AzureMonitorValue); + /// Determines if two values are the same. + public static bool operator ==(Platform left, Platform right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(Platform left, Platform right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator Platform(string value) => new Platform(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is Platform other && Equals(other); + /// + public bool Equals(Platform other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + /// + public override string ToString() => _value; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Protocol.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Protocol.cs new file mode 100644 index 000000000000..dd3557f30bfb --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Protocol.cs @@ -0,0 +1,69 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// List of protocols. + public readonly partial struct Protocol : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public Protocol(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string TCPValue = "TCP"; + private const string UDPValue = "UDP"; + private const string HTTPValue = "HTTP"; + private const string HTTPSValue = "HTTPS"; + private const string RDPValue = "RDP"; + private const string FTPValue = "FTP"; + private const string SSHValue = "SSH"; + private const string OtherValue = "Other"; + + /// When communication protocol is TCP. + public static Protocol TCP { get; } = new Protocol(TCPValue); + /// When communication protocol is UDP. + public static Protocol UDP { get; } = new Protocol(UDPValue); + /// When communication protocol is HTTP. + public static Protocol HTTP { get; } = new Protocol(HTTPValue); + /// When communication protocol is HTTPS. + public static Protocol HTTPS { get; } = new Protocol(HTTPSValue); + /// When communication protocol is RDP. + public static Protocol RDP { get; } = new Protocol(RDPValue); + /// When communication protocol is FTP. + public static Protocol FTP { get; } = new Protocol(FTPValue); + /// When communication protocol is SSH. + public static Protocol SSH { get; } = new Protocol(SSHValue); + /// When communication protocol is Other. + public static Protocol Other { get; } = new Protocol(OtherValue); + /// Determines if two values are the same. + public static bool operator ==(Protocol left, Protocol right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(Protocol left, Protocol right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator Protocol(string value) => new Protocol(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is Protocol other && Equals(other); + /// + public bool Equals(Protocol other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + /// + public override string ToString() => _value; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ProvisioningState.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ProvisioningState.cs new file mode 100644 index 000000000000..7f8995037fb0 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/ProvisioningState.cs @@ -0,0 +1,54 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// Provisioning state of the resource. + public readonly partial struct ProvisioningState : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public ProvisioningState(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string SucceededValue = "Succeeded"; + private const string FailedValue = "Failed"; + private const string CanceledValue = "Canceled"; + + /// Provisioning Succeeded. + public static ProvisioningState Succeeded { get; } = new ProvisioningState(SucceededValue); + /// Provisioning Failed. + public static ProvisioningState Failed { get; } = new ProvisioningState(FailedValue); + /// Provisioning Canceled. + public static ProvisioningState Canceled { get; } = new ProvisioningState(CanceledValue); + /// Determines if two values are the same. + public static bool operator ==(ProvisioningState left, ProvisioningState right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(ProvisioningState left, ProvisioningState right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator ProvisioningState(string value) => new ProvisioningState(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ProvisioningState other && Equals(other); + /// + public bool Equals(ProvisioningState other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + /// + public override string ToString() => _value; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/RequiredImpactProperties.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/RequiredImpactProperties.Serialization.cs new file mode 100644 index 000000000000..e657012d2972 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/RequiredImpactProperties.Serialization.cs @@ -0,0 +1,151 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public partial class RequiredImpactProperties : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(RequiredImpactProperties)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); + if (Optional.IsCollectionDefined(AllowedValues)) + { + writer.WritePropertyName("allowedValues"u8); + writer.WriteStartArray(); + foreach (var item in AllowedValues) + { + writer.WriteStringValue(item); + } + writer.WriteEndArray(); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + RequiredImpactProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(RequiredImpactProperties)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRequiredImpactProperties(document.RootElement, options); + } + + internal static RequiredImpactProperties DeserializeRequiredImpactProperties(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string name = default; + IReadOnlyList allowedValues = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("name"u8)) + { + name = property.Value.GetString(); + continue; + } + if (property.NameEquals("allowedValues"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + allowedValues = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RequiredImpactProperties(name, allowedValues ?? new ChangeTrackingList(), serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(RequiredImpactProperties)} does not support writing '{options.Format}' format."); + } + } + + RequiredImpactProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRequiredImpactProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RequiredImpactProperties)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/RequiredImpactProperties.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/RequiredImpactProperties.cs new file mode 100644 index 000000000000..53ed7245ccf3 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/RequiredImpactProperties.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// Required impact properties. + public partial class RequiredImpactProperties + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// Name of the property. + /// is null. + internal RequiredImpactProperties(string name) + { + Argument.AssertNotNull(name, nameof(name)); + + Name = name; + AllowedValues = new ChangeTrackingList(); + } + + /// Initializes a new instance of . + /// Name of the property. + /// Allowed values values for the property. + /// Keeps track of any properties unknown to the library. + internal RequiredImpactProperties(string name, IReadOnlyList allowedValues, IDictionary serializedAdditionalRawData) + { + Name = name; + AllowedValues = allowedValues; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal RequiredImpactProperties() + { + } + + /// Name of the property. + public string Name { get; } + /// Allowed values values for the property. + public IReadOnlyList AllowedValues { get; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/SourceOrTarget.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/SourceOrTarget.Serialization.cs new file mode 100644 index 000000000000..daeee4566adb --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/SourceOrTarget.Serialization.cs @@ -0,0 +1,129 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + internal partial class SourceOrTarget : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SourceOrTarget)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(AzureResourceId)) + { + writer.WritePropertyName("azureResourceId"u8); + writer.WriteStringValue(AzureResourceId); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + SourceOrTarget IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SourceOrTarget)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeSourceOrTarget(document.RootElement, options); + } + + internal static SourceOrTarget DeserializeSourceOrTarget(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string azureResourceId = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("azureResourceId"u8)) + { + azureResourceId = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new SourceOrTarget(azureResourceId, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(SourceOrTarget)} does not support writing '{options.Format}' format."); + } + } + + SourceOrTarget IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeSourceOrTarget(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(SourceOrTarget)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/SourceOrTarget.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/SourceOrTarget.cs new file mode 100644 index 000000000000..f424234d0eee --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/SourceOrTarget.cs @@ -0,0 +1,65 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// Resource details. + internal partial class SourceOrTarget + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + public SourceOrTarget() + { + } + + /// Initializes a new instance of . + /// Azure resource id, example /subscription/{subscription}/resourceGroup/{rg}/Microsoft.compute/virtualMachine/{vmName}. + /// Keeps track of any properties unknown to the library. + internal SourceOrTarget(string azureResourceId, IDictionary serializedAdditionalRawData) + { + AzureResourceId = azureResourceId; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Azure resource id, example /subscription/{subscription}/resourceGroup/{rg}/Microsoft.compute/virtualMachine/{vmName}. + public string AzureResourceId { get; set; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Toolset.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Toolset.cs new file mode 100644 index 000000000000..18e2aa31bfd0 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Toolset.cs @@ -0,0 +1,72 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// List of azure interfaces. + public readonly partial struct Toolset : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public Toolset(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string TerraformValue = "Terraform"; + private const string PuppetValue = "Puppet"; + private const string ChefValue = "Chef"; + private const string SDKValue = "SDK"; + private const string AnsibleValue = "Ansible"; + private const string ARMValue = "ARM"; + private const string PortalValue = "Portal"; + private const string ShellValue = "Shell"; + private const string OtherValue = "Other"; + + /// If communication toolset is Terraform. + public static Toolset Terraform { get; } = new Toolset(TerraformValue); + /// If communication toolset is Puppet. + public static Toolset Puppet { get; } = new Toolset(PuppetValue); + /// If communication toolset is Chef. + public static Toolset Chef { get; } = new Toolset(ChefValue); + /// If communication toolset is SDK. + public static Toolset SDK { get; } = new Toolset(SDKValue); + /// If communication toolset is Ansible. + public static Toolset Ansible { get; } = new Toolset(AnsibleValue); + /// If communication toolset is ARM. + public static Toolset ARM { get; } = new Toolset(ARMValue); + /// If communication toolset is Portal. + public static Toolset Portal { get; } = new Toolset(PortalValue); + /// If communication toolset is Shell. + public static Toolset Shell { get; } = new Toolset(ShellValue); + /// If communication toolset is Other. + public static Toolset Other { get; } = new Toolset(OtherValue); + /// Determines if two values are the same. + public static bool operator ==(Toolset left, Toolset right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(Toolset left, Toolset right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator Toolset(string value) => new Toolset(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is Toolset other && Equals(other); + /// + public bool Equals(Toolset other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + /// + public override string ToString() => _value; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Workload.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Workload.Serialization.cs new file mode 100644 index 000000000000..9661e9b11aed --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Workload.Serialization.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public partial class Workload : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Workload)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(Context)) + { + writer.WritePropertyName("context"u8); + writer.WriteStringValue(Context); + } + if (Optional.IsDefined(Toolset)) + { + writer.WritePropertyName("toolset"u8); + writer.WriteStringValue(Toolset.Value.ToString()); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + Workload IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Workload)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeWorkload(document.RootElement, options); + } + + internal static Workload DeserializeWorkload(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string context = default; + Toolset? toolset = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("context"u8)) + { + context = property.Value.GetString(); + continue; + } + if (property.NameEquals("toolset"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + toolset = new Toolset(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new Workload(context, toolset, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(Workload)} does not support writing '{options.Format}' format."); + } + } + + Workload IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeWorkload(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(Workload)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Workload.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Workload.cs new file mode 100644 index 000000000000..ca0edd5f8cdb --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/Workload.cs @@ -0,0 +1,69 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// Information about the impacted workload. + public partial class Workload + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + public Workload() + { + } + + /// Initializes a new instance of . + /// the scenario for the workload. + /// Tool used to interact with Azure. SDK, AzPortal, etc.., Other. + /// Keeps track of any properties unknown to the library. + internal Workload(string context, Toolset? toolset, IDictionary serializedAdditionalRawData) + { + Context = context; + Toolset = toolset; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// the scenario for the workload. + public string Context { get; set; } + /// Tool used to interact with Azure. SDK, AzPortal, etc.., Other. + public Toolset? Toolset { get; set; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactListResult.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactListResult.Serialization.cs new file mode 100644 index 000000000000..ec6c68e1aaba --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactListResult.Serialization.cs @@ -0,0 +1,151 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + internal partial class WorkloadImpactListResult : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkloadImpactListResult)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (var item in Value) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(NextLink)) + { + writer.WritePropertyName("nextLink"u8); + writer.WriteStringValue(NextLink.AbsoluteUri); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + WorkloadImpactListResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkloadImpactListResult)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeWorkloadImpactListResult(document.RootElement, options); + } + + internal static WorkloadImpactListResult DeserializeWorkloadImpactListResult(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList value = default; + Uri nextLink = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("value"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(WorkloadImpactData.DeserializeWorkloadImpactData(item, options)); + } + value = array; + continue; + } + if (property.NameEquals("nextLink"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + nextLink = new Uri(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new WorkloadImpactListResult(value, nextLink, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(WorkloadImpactListResult)} does not support writing '{options.Format}' format."); + } + } + + WorkloadImpactListResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeWorkloadImpactListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(WorkloadImpactListResult)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactListResult.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactListResult.cs new file mode 100644 index 000000000000..91a0bf749286 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactListResult.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// The response of a WorkloadImpact list operation. + internal partial class WorkloadImpactListResult + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// The WorkloadImpact items on this page. + /// is null. + internal WorkloadImpactListResult(IEnumerable value) + { + Argument.AssertNotNull(value, nameof(value)); + + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The WorkloadImpact items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal WorkloadImpactListResult(IReadOnlyList value, Uri nextLink, IDictionary serializedAdditionalRawData) + { + Value = value; + NextLink = nextLink; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal WorkloadImpactListResult() + { + } + + /// The WorkloadImpact items on this page. + public IReadOnlyList Value { get; } + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactProperties.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactProperties.Serialization.cs new file mode 100644 index 000000000000..7ff91866f503 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactProperties.Serialization.cs @@ -0,0 +1,378 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public partial class WorkloadImpactProperties : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkloadImpactProperties)} does not support writing '{format}' format."); + } + + if (options.Format != "W" && Optional.IsDefined(ProvisioningState)) + { + writer.WritePropertyName("provisioningState"u8); + writer.WriteStringValue(ProvisioningState.Value.ToString()); + } + writer.WritePropertyName("startDateTime"u8); + writer.WriteStringValue(StartOn, "O"); + if (Optional.IsDefined(EndOn)) + { + writer.WritePropertyName("endDateTime"u8); + writer.WriteStringValue(EndOn.Value, "O"); + } + writer.WritePropertyName("impactedResourceId"u8); + writer.WriteStringValue(ImpactedResourceId); + if (options.Format != "W" && Optional.IsDefined(ImpactUniqueId)) + { + writer.WritePropertyName("impactUniqueId"u8); + writer.WriteStringValue(ImpactUniqueId); + } + if (options.Format != "W" && Optional.IsDefined(ReportedTimeUtc)) + { + writer.WritePropertyName("reportedTimeUtc"u8); + writer.WriteStringValue(ReportedTimeUtc.Value, "O"); + } + writer.WritePropertyName("impactCategory"u8); + writer.WriteStringValue(ImpactCategory); + if (Optional.IsDefined(ImpactDescription)) + { + writer.WritePropertyName("impactDescription"u8); + writer.WriteStringValue(ImpactDescription); + } + if (Optional.IsCollectionDefined(ArmCorrelationIds)) + { + writer.WritePropertyName("armCorrelationIds"u8); + writer.WriteStartArray(); + foreach (var item in ArmCorrelationIds) + { + writer.WriteStringValue(item); + } + writer.WriteEndArray(); + } + if (Optional.IsCollectionDefined(Performance)) + { + writer.WritePropertyName("performance"u8); + writer.WriteStartArray(); + foreach (var item in Performance) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (Optional.IsDefined(Connectivity)) + { + writer.WritePropertyName("connectivity"u8); + writer.WriteObjectValue(Connectivity, options); + } + if (Optional.IsDefined(AdditionalProperties)) + { + writer.WritePropertyName("additionalProperties"u8); + writer.WriteObjectValue(AdditionalProperties, options); + } + if (Optional.IsDefined(ErrorDetails)) + { + writer.WritePropertyName("errorDetails"u8); + writer.WriteObjectValue(ErrorDetails, options); + } + if (Optional.IsDefined(Workload)) + { + writer.WritePropertyName("workload"u8); + writer.WriteObjectValue(Workload, options); + } + if (Optional.IsDefined(ImpactGroupId)) + { + writer.WritePropertyName("impactGroupId"u8); + writer.WriteStringValue(ImpactGroupId); + } + if (Optional.IsDefined(ConfidenceLevel)) + { + writer.WritePropertyName("confidenceLevel"u8); + writer.WriteStringValue(ConfidenceLevel.Value.ToString()); + } + if (Optional.IsDefined(ClientIncidentDetails)) + { + writer.WritePropertyName("clientIncidentDetails"u8); + writer.WriteObjectValue(ClientIncidentDetails, options); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + WorkloadImpactProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkloadImpactProperties)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeWorkloadImpactProperties(document.RootElement, options); + } + + internal static WorkloadImpactProperties DeserializeWorkloadImpactProperties(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ProvisioningState? provisioningState = default; + DateTimeOffset startDateTime = default; + DateTimeOffset? endDateTime = default; + string impactedResourceId = default; + string impactUniqueId = default; + DateTimeOffset? reportedTimeUtc = default; + string impactCategory = default; + string impactDescription = default; + IList armCorrelationIds = default; + IList performance = default; + Connectivity connectivity = default; + WorkloadImpactPropertiesAdditionalProperties additionalProperties = default; + ErrorDetailProperties errorDetails = default; + Workload workload = default; + string impactGroupId = default; + ConfidenceLevel? confidenceLevel = default; + ClientIncidentDetails clientIncidentDetails = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("provisioningState"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + provisioningState = new ProvisioningState(property.Value.GetString()); + continue; + } + if (property.NameEquals("startDateTime"u8)) + { + startDateTime = property.Value.GetDateTimeOffset("O"); + continue; + } + if (property.NameEquals("endDateTime"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + endDateTime = property.Value.GetDateTimeOffset("O"); + continue; + } + if (property.NameEquals("impactedResourceId"u8)) + { + impactedResourceId = property.Value.GetString(); + continue; + } + if (property.NameEquals("impactUniqueId"u8)) + { + impactUniqueId = property.Value.GetString(); + continue; + } + if (property.NameEquals("reportedTimeUtc"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + reportedTimeUtc = property.Value.GetDateTimeOffset("O"); + continue; + } + if (property.NameEquals("impactCategory"u8)) + { + impactCategory = property.Value.GetString(); + continue; + } + if (property.NameEquals("impactDescription"u8)) + { + impactDescription = property.Value.GetString(); + continue; + } + if (property.NameEquals("armCorrelationIds"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + armCorrelationIds = array; + continue; + } + if (property.NameEquals("performance"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(Models.Performance.DeserializePerformance(item, options)); + } + performance = array; + continue; + } + if (property.NameEquals("connectivity"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + connectivity = Connectivity.DeserializeConnectivity(property.Value, options); + continue; + } + if (property.NameEquals("additionalProperties"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + additionalProperties = WorkloadImpactPropertiesAdditionalProperties.DeserializeWorkloadImpactPropertiesAdditionalProperties(property.Value, options); + continue; + } + if (property.NameEquals("errorDetails"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + errorDetails = ErrorDetailProperties.DeserializeErrorDetailProperties(property.Value, options); + continue; + } + if (property.NameEquals("workload"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + workload = Workload.DeserializeWorkload(property.Value, options); + continue; + } + if (property.NameEquals("impactGroupId"u8)) + { + impactGroupId = property.Value.GetString(); + continue; + } + if (property.NameEquals("confidenceLevel"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + confidenceLevel = new ConfidenceLevel(property.Value.GetString()); + continue; + } + if (property.NameEquals("clientIncidentDetails"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + clientIncidentDetails = ClientIncidentDetails.DeserializeClientIncidentDetails(property.Value, options); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new WorkloadImpactProperties( + provisioningState, + startDateTime, + endDateTime, + impactedResourceId, + impactUniqueId, + reportedTimeUtc, + impactCategory, + impactDescription, + armCorrelationIds ?? new ChangeTrackingList(), + performance ?? new ChangeTrackingList(), + connectivity, + additionalProperties, + errorDetails, + workload, + impactGroupId, + confidenceLevel, + clientIncidentDetails, + serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(WorkloadImpactProperties)} does not support writing '{options.Format}' format."); + } + } + + WorkloadImpactProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeWorkloadImpactProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(WorkloadImpactProperties)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactProperties.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactProperties.cs new file mode 100644 index 000000000000..b4745430bff7 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactProperties.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// Workload impact properties. + public partial class WorkloadImpactProperties + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// Time at which impact was observed. + /// Azure resource id of the impacted resource. + /// Category of the impact, details can found from /impactCategories API. + /// or is null. + public WorkloadImpactProperties(DateTimeOffset startOn, string impactedResourceId, string impactCategory) + { + Argument.AssertNotNull(impactedResourceId, nameof(impactedResourceId)); + Argument.AssertNotNull(impactCategory, nameof(impactCategory)); + + StartOn = startOn; + ImpactedResourceId = impactedResourceId; + ImpactCategory = impactCategory; + ArmCorrelationIds = new ChangeTrackingList(); + Performance = new ChangeTrackingList(); + } + + /// Initializes a new instance of . + /// Resource provisioning state. + /// Time at which impact was observed. + /// Time at which impact has ended. + /// Azure resource id of the impacted resource. + /// Unique ID of the impact (UUID). + /// Time at which impact is reported. + /// Category of the impact, details can found from /impactCategories API. + /// A detailed description of the impact. + /// The ARM correlation ids, this is important field for control plane related impacts. + /// Details about performance issue. Applicable for performance impacts. + /// Details about connectivity issue. Applicable when root resource causing the issue is not identified. For example, when a VM is impacted due to a network issue, the impacted resource is identified as the VM, but the root cause is the network. In such cases, the connectivity field will have the details about the network issue. + /// Additional fields related to impact, applicable fields per resource type are list under /impactCategories API. + /// ARM error code and error message associated with the impact. + /// Information about the impacted workload. + /// Use this field to group impacts. + /// Degree of confidence on the impact being a platform issue. + /// Client incident details ex: incidentId , incident source. + /// Keeps track of any properties unknown to the library. + internal WorkloadImpactProperties(ProvisioningState? provisioningState, DateTimeOffset startOn, DateTimeOffset? endOn, string impactedResourceId, string impactUniqueId, DateTimeOffset? reportedTimeUtc, string impactCategory, string impactDescription, IList armCorrelationIds, IList performance, Connectivity connectivity, WorkloadImpactPropertiesAdditionalProperties additionalProperties, ErrorDetailProperties errorDetails, Workload workload, string impactGroupId, ConfidenceLevel? confidenceLevel, ClientIncidentDetails clientIncidentDetails, IDictionary serializedAdditionalRawData) + { + ProvisioningState = provisioningState; + StartOn = startOn; + EndOn = endOn; + ImpactedResourceId = impactedResourceId; + ImpactUniqueId = impactUniqueId; + ReportedTimeUtc = reportedTimeUtc; + ImpactCategory = impactCategory; + ImpactDescription = impactDescription; + ArmCorrelationIds = armCorrelationIds; + Performance = performance; + Connectivity = connectivity; + AdditionalProperties = additionalProperties; + ErrorDetails = errorDetails; + Workload = workload; + ImpactGroupId = impactGroupId; + ConfidenceLevel = confidenceLevel; + ClientIncidentDetails = clientIncidentDetails; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal WorkloadImpactProperties() + { + } + + /// Resource provisioning state. + public ProvisioningState? ProvisioningState { get; } + /// Time at which impact was observed. + public DateTimeOffset StartOn { get; set; } + /// Time at which impact has ended. + public DateTimeOffset? EndOn { get; set; } + /// Azure resource id of the impacted resource. + public string ImpactedResourceId { get; set; } + /// Unique ID of the impact (UUID). + public string ImpactUniqueId { get; } + /// Time at which impact is reported. + public DateTimeOffset? ReportedTimeUtc { get; } + /// Category of the impact, details can found from /impactCategories API. + public string ImpactCategory { get; set; } + /// A detailed description of the impact. + public string ImpactDescription { get; set; } + /// The ARM correlation ids, this is important field for control plane related impacts. + public IList ArmCorrelationIds { get; } + /// Details about performance issue. Applicable for performance impacts. + public IList Performance { get; } + /// Details about connectivity issue. Applicable when root resource causing the issue is not identified. For example, when a VM is impacted due to a network issue, the impacted resource is identified as the VM, but the root cause is the network. In such cases, the connectivity field will have the details about the network issue. + public Connectivity Connectivity { get; set; } + /// Additional fields related to impact, applicable fields per resource type are list under /impactCategories API. + public WorkloadImpactPropertiesAdditionalProperties AdditionalProperties { get; set; } + /// ARM error code and error message associated with the impact. + public ErrorDetailProperties ErrorDetails { get; set; } + /// Information about the impacted workload. + public Workload Workload { get; set; } + /// Use this field to group impacts. + public string ImpactGroupId { get; set; } + /// Degree of confidence on the impact being a platform issue. + public ConfidenceLevel? ConfidenceLevel { get; set; } + /// Client incident details ex: incidentId , incident source. + public ClientIncidentDetails ClientIncidentDetails { get; set; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactPropertiesAdditionalProperties.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactPropertiesAdditionalProperties.Serialization.cs new file mode 100644 index 000000000000..b8b8eff131ad --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactPropertiesAdditionalProperties.Serialization.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + public partial class WorkloadImpactPropertiesAdditionalProperties : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkloadImpactPropertiesAdditionalProperties)} does not support writing '{format}' format."); + } + + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + WorkloadImpactPropertiesAdditionalProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkloadImpactPropertiesAdditionalProperties)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeWorkloadImpactPropertiesAdditionalProperties(document.RootElement, options); + } + + internal static WorkloadImpactPropertiesAdditionalProperties DeserializeWorkloadImpactPropertiesAdditionalProperties(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new WorkloadImpactPropertiesAdditionalProperties(serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(WorkloadImpactPropertiesAdditionalProperties)} does not support writing '{options.Format}' format."); + } + } + + WorkloadImpactPropertiesAdditionalProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeWorkloadImpactPropertiesAdditionalProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(WorkloadImpactPropertiesAdditionalProperties)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactPropertiesAdditionalProperties.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactPropertiesAdditionalProperties.cs new file mode 100644 index 000000000000..a46fed669515 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/Models/WorkloadImpactPropertiesAdditionalProperties.cs @@ -0,0 +1,60 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.ImpactReporting.Models +{ + /// The WorkloadImpactPropertiesAdditionalProperties. + public partial class WorkloadImpactPropertiesAdditionalProperties + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + public WorkloadImpactPropertiesAdditionalProperties() + { + } + + /// Initializes a new instance of . + /// Keeps track of any properties unknown to the library. + internal WorkloadImpactPropertiesAdditionalProperties(IDictionary serializedAdditionalRawData) + { + _serializedAdditionalRawData = serializedAdditionalRawData; + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ProviderConstants.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ProviderConstants.cs new file mode 100644 index 000000000000..71ee32aa17a0 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/ProviderConstants.cs @@ -0,0 +1,16 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.ImpactReporting +{ + internal static class ProviderConstants + { + public static string DefaultProviderNamespace { get; } = ClientDiagnostics.GetResourceProviderNamespace(typeof(ProviderConstants).Assembly); + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/RestOperations/ConnectorsRestOperations.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/RestOperations/ConnectorsRestOperations.cs new file mode 100644 index 000000000000..5793e3446c44 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/RestOperations/ConnectorsRestOperations.cs @@ -0,0 +1,533 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.ImpactReporting.Models; + +namespace Azure.ResourceManager.ImpactReporting +{ + internal partial class ConnectorsRestOperations + { + private readonly TelemetryDetails _userAgent; + private readonly HttpPipeline _pipeline; + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of ConnectorsRestOperations. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// The application id to use for user agent. + /// Service host. + /// The API version to use for this operation. + /// or is null. + public ConnectorsRestOperations(HttpPipeline pipeline, string applicationId, Uri endpoint = null, string apiVersion = default) + { + _pipeline = pipeline ?? throw new ArgumentNullException(nameof(pipeline)); + _endpoint = endpoint ?? new Uri("https://management.azure.com"); + _apiVersion = apiVersion ?? "2024-05-01-preview"; + _userAgent = new TelemetryDetails(GetType().Assembly, applicationId); + } + + internal RequestUriBuilder CreateGetRequestUri(string subscriptionId, string connectorName) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/connectors/", false); + uri.AppendPath(connectorName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateGetRequest(string subscriptionId, string connectorName) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Get; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/connectors/", false); + uri.AppendPath(connectorName, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// Get a Connector. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the connector. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public async Task> GetAsync(string subscriptionId, string connectorName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(connectorName, nameof(connectorName)); + + using var message = CreateGetRequest(subscriptionId, connectorName); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + ConnectorData value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = ConnectorData.DeserializeConnectorData(document.RootElement); + return Response.FromValue(value, message.Response); + } + case 404: + return Response.FromValue((ConnectorData)null, message.Response); + default: + throw new RequestFailedException(message.Response); + } + } + + /// Get a Connector. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the connector. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public Response Get(string subscriptionId, string connectorName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(connectorName, nameof(connectorName)); + + using var message = CreateGetRequest(subscriptionId, connectorName); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + ConnectorData value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = ConnectorData.DeserializeConnectorData(document.RootElement); + return Response.FromValue(value, message.Response); + } + case 404: + return Response.FromValue((ConnectorData)null, message.Response); + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateCreateOrUpdateRequestUri(string subscriptionId, string connectorName, ConnectorData data) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/connectors/", false); + uri.AppendPath(connectorName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateCreateOrUpdateRequest(string subscriptionId, string connectorName, ConnectorData data) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Put; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/connectors/", false); + uri.AppendPath(connectorName, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + request.Headers.Add("Content-Type", "application/json"); + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(data, ModelSerializationExtensions.WireOptions); + request.Content = content; + _userAgent.Apply(message); + return message; + } + + /// Create a Connector. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the connector. + /// Resource create parameters. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + public async Task CreateOrUpdateAsync(string subscriptionId, string connectorName, ConnectorData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(connectorName, nameof(connectorName)); + Argument.AssertNotNull(data, nameof(data)); + + using var message = CreateCreateOrUpdateRequest(subscriptionId, connectorName, data); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + case 201: + return message.Response; + default: + throw new RequestFailedException(message.Response); + } + } + + /// Create a Connector. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the connector. + /// Resource create parameters. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + public Response CreateOrUpdate(string subscriptionId, string connectorName, ConnectorData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(connectorName, nameof(connectorName)); + Argument.AssertNotNull(data, nameof(data)); + + using var message = CreateCreateOrUpdateRequest(subscriptionId, connectorName, data); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + case 201: + return message.Response; + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateUpdateRequestUri(string subscriptionId, string connectorName, ConnectorPatch patch) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/connectors/", false); + uri.AppendPath(connectorName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateUpdateRequest(string subscriptionId, string connectorName, ConnectorPatch patch) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Patch; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/connectors/", false); + uri.AppendPath(connectorName, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + request.Headers.Add("Content-Type", "application/json"); + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(patch, ModelSerializationExtensions.WireOptions); + request.Content = content; + _userAgent.Apply(message); + return message; + } + + /// Update a Connector. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the connector. + /// The resource properties to be updated. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + public async Task> UpdateAsync(string subscriptionId, string connectorName, ConnectorPatch patch, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(connectorName, nameof(connectorName)); + Argument.AssertNotNull(patch, nameof(patch)); + + using var message = CreateUpdateRequest(subscriptionId, connectorName, patch); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + ConnectorData value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = ConnectorData.DeserializeConnectorData(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + /// Update a Connector. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the connector. + /// The resource properties to be updated. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + public Response Update(string subscriptionId, string connectorName, ConnectorPatch patch, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(connectorName, nameof(connectorName)); + Argument.AssertNotNull(patch, nameof(patch)); + + using var message = CreateUpdateRequest(subscriptionId, connectorName, patch); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + ConnectorData value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = ConnectorData.DeserializeConnectorData(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateDeleteRequestUri(string subscriptionId, string connectorName) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/connectors/", false); + uri.AppendPath(connectorName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateDeleteRequest(string subscriptionId, string connectorName) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Delete; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/connectors/", false); + uri.AppendPath(connectorName, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// Delete a Connector. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the connector. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public async Task DeleteAsync(string subscriptionId, string connectorName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(connectorName, nameof(connectorName)); + + using var message = CreateDeleteRequest(subscriptionId, connectorName); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + case 204: + return message.Response; + default: + throw new RequestFailedException(message.Response); + } + } + + /// Delete a Connector. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the connector. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public Response Delete(string subscriptionId, string connectorName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(connectorName, nameof(connectorName)); + + using var message = CreateDeleteRequest(subscriptionId, connectorName); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + case 204: + return message.Response; + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateListBySubscriptionRequestUri(string subscriptionId) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/connectors", false); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateListBySubscriptionRequest(string subscriptionId) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Get; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/connectors", false); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// List Connector resources by subscription ID. + /// The ID of the target subscription. The value must be an UUID. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public async Task> ListBySubscriptionAsync(string subscriptionId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + + using var message = CreateListBySubscriptionRequest(subscriptionId); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + ConnectorListResult value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = ConnectorListResult.DeserializeConnectorListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + /// List Connector resources by subscription ID. + /// The ID of the target subscription. The value must be an UUID. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public Response ListBySubscription(string subscriptionId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + + using var message = CreateListBySubscriptionRequest(subscriptionId); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + ConnectorListResult value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = ConnectorListResult.DeserializeConnectorListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateListBySubscriptionNextPageRequestUri(string nextLink, string subscriptionId) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendRawNextLink(nextLink, false); + return uri; + } + + internal HttpMessage CreateListBySubscriptionNextPageRequest(string nextLink, string subscriptionId) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Get; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendRawNextLink(nextLink, false); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// List Connector resources by subscription ID. + /// The URL to the next page of results. + /// The ID of the target subscription. The value must be an UUID. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public async Task> ListBySubscriptionNextPageAsync(string nextLink, string subscriptionId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(nextLink, nameof(nextLink)); + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + + using var message = CreateListBySubscriptionNextPageRequest(nextLink, subscriptionId); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + ConnectorListResult value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = ConnectorListResult.DeserializeConnectorListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + /// List Connector resources by subscription ID. + /// The URL to the next page of results. + /// The ID of the target subscription. The value must be an UUID. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public Response ListBySubscriptionNextPage(string nextLink, string subscriptionId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(nextLink, nameof(nextLink)); + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + + using var message = CreateListBySubscriptionNextPageRequest(nextLink, subscriptionId); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + ConnectorListResult value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = ConnectorListResult.DeserializeConnectorListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/RestOperations/ImpactCategoriesRestOperations.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/RestOperations/ImpactCategoriesRestOperations.cs new file mode 100644 index 000000000000..02c9099c283d --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/RestOperations/ImpactCategoriesRestOperations.cs @@ -0,0 +1,303 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.ImpactReporting.Models; + +namespace Azure.ResourceManager.ImpactReporting +{ + internal partial class ImpactCategoriesRestOperations + { + private readonly TelemetryDetails _userAgent; + private readonly HttpPipeline _pipeline; + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of ImpactCategoriesRestOperations. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// The application id to use for user agent. + /// Service host. + /// The API version to use for this operation. + /// or is null. + public ImpactCategoriesRestOperations(HttpPipeline pipeline, string applicationId, Uri endpoint = null, string apiVersion = default) + { + _pipeline = pipeline ?? throw new ArgumentNullException(nameof(pipeline)); + _endpoint = endpoint ?? new Uri("https://management.azure.com"); + _apiVersion = apiVersion ?? "2024-05-01-preview"; + _userAgent = new TelemetryDetails(GetType().Assembly, applicationId); + } + + internal RequestUriBuilder CreateGetRequestUri(string subscriptionId, string impactCategoryName) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/impactCategories/", false); + uri.AppendPath(impactCategoryName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateGetRequest(string subscriptionId, string impactCategoryName) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Get; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/impactCategories/", false); + uri.AppendPath(impactCategoryName, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// Get a ImpactCategory. + /// The ID of the target subscription. The value must be an UUID. + /// Name of the impact category. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public async Task> GetAsync(string subscriptionId, string impactCategoryName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(impactCategoryName, nameof(impactCategoryName)); + + using var message = CreateGetRequest(subscriptionId, impactCategoryName); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + ImpactCategoryData value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = ImpactCategoryData.DeserializeImpactCategoryData(document.RootElement); + return Response.FromValue(value, message.Response); + } + case 404: + return Response.FromValue((ImpactCategoryData)null, message.Response); + default: + throw new RequestFailedException(message.Response); + } + } + + /// Get a ImpactCategory. + /// The ID of the target subscription. The value must be an UUID. + /// Name of the impact category. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public Response Get(string subscriptionId, string impactCategoryName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(impactCategoryName, nameof(impactCategoryName)); + + using var message = CreateGetRequest(subscriptionId, impactCategoryName); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + ImpactCategoryData value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = ImpactCategoryData.DeserializeImpactCategoryData(document.RootElement); + return Response.FromValue(value, message.Response); + } + case 404: + return Response.FromValue((ImpactCategoryData)null, message.Response); + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateListBySubscriptionRequestUri(string subscriptionId, string resourceType, string categoryName) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/impactCategories", false); + uri.AppendQuery("api-version", _apiVersion, true); + if (categoryName != null) + { + uri.AppendQuery("categoryName", categoryName, true); + } + uri.AppendQuery("resourceType", resourceType, true); + return uri; + } + + internal HttpMessage CreateListBySubscriptionRequest(string subscriptionId, string resourceType, string categoryName) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Get; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/impactCategories", false); + uri.AppendQuery("api-version", _apiVersion, true); + if (categoryName != null) + { + uri.AppendQuery("categoryName", categoryName, true); + } + uri.AppendQuery("resourceType", resourceType, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// List ImpactCategory resources by subscription. + /// The ID of the target subscription. The value must be an UUID. + /// Filter by resource type. + /// Filter by category name. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public async Task> ListBySubscriptionAsync(string subscriptionId, string resourceType, string categoryName = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNull(resourceType, nameof(resourceType)); + + using var message = CreateListBySubscriptionRequest(subscriptionId, resourceType, categoryName); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + ImpactCategoryListResult value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = ImpactCategoryListResult.DeserializeImpactCategoryListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + /// List ImpactCategory resources by subscription. + /// The ID of the target subscription. The value must be an UUID. + /// Filter by resource type. + /// Filter by category name. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public Response ListBySubscription(string subscriptionId, string resourceType, string categoryName = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNull(resourceType, nameof(resourceType)); + + using var message = CreateListBySubscriptionRequest(subscriptionId, resourceType, categoryName); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + ImpactCategoryListResult value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = ImpactCategoryListResult.DeserializeImpactCategoryListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateListBySubscriptionNextPageRequestUri(string nextLink, string subscriptionId, string resourceType, string categoryName) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendRawNextLink(nextLink, false); + return uri; + } + + internal HttpMessage CreateListBySubscriptionNextPageRequest(string nextLink, string subscriptionId, string resourceType, string categoryName) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Get; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendRawNextLink(nextLink, false); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// List ImpactCategory resources by subscription. + /// The URL to the next page of results. + /// The ID of the target subscription. The value must be an UUID. + /// Filter by resource type. + /// Filter by category name. + /// The cancellation token to use. + /// , or is null. + /// is an empty string, and was expected to be non-empty. + public async Task> ListBySubscriptionNextPageAsync(string nextLink, string subscriptionId, string resourceType, string categoryName = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(nextLink, nameof(nextLink)); + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNull(resourceType, nameof(resourceType)); + + using var message = CreateListBySubscriptionNextPageRequest(nextLink, subscriptionId, resourceType, categoryName); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + ImpactCategoryListResult value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = ImpactCategoryListResult.DeserializeImpactCategoryListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + /// List ImpactCategory resources by subscription. + /// The URL to the next page of results. + /// The ID of the target subscription. The value must be an UUID. + /// Filter by resource type. + /// Filter by category name. + /// The cancellation token to use. + /// , or is null. + /// is an empty string, and was expected to be non-empty. + public Response ListBySubscriptionNextPage(string nextLink, string subscriptionId, string resourceType, string categoryName = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(nextLink, nameof(nextLink)); + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNull(resourceType, nameof(resourceType)); + + using var message = CreateListBySubscriptionNextPageRequest(nextLink, subscriptionId, resourceType, categoryName); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + ImpactCategoryListResult value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = ImpactCategoryListResult.DeserializeImpactCategoryListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/RestOperations/InsightsRestOperations.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/RestOperations/InsightsRestOperations.cs new file mode 100644 index 000000000000..93472b5be08c --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/RestOperations/InsightsRestOperations.cs @@ -0,0 +1,487 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.ImpactReporting.Models; + +namespace Azure.ResourceManager.ImpactReporting +{ + internal partial class InsightsRestOperations + { + private readonly TelemetryDetails _userAgent; + private readonly HttpPipeline _pipeline; + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of InsightsRestOperations. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// The application id to use for user agent. + /// Service host. + /// The API version to use for this operation. + /// or is null. + public InsightsRestOperations(HttpPipeline pipeline, string applicationId, Uri endpoint = null, string apiVersion = default) + { + _pipeline = pipeline ?? throw new ArgumentNullException(nameof(pipeline)); + _endpoint = endpoint ?? new Uri("https://management.azure.com"); + _apiVersion = apiVersion ?? "2024-05-01-preview"; + _userAgent = new TelemetryDetails(GetType().Assembly, applicationId); + } + + internal RequestUriBuilder CreateGetRequestUri(string subscriptionId, string workloadImpactName, string insightName) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/workloadImpacts/", false); + uri.AppendPath(workloadImpactName, true); + uri.AppendPath("/insights/", false); + uri.AppendPath(insightName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateGetRequest(string subscriptionId, string workloadImpactName, string insightName) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Get; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/workloadImpacts/", false); + uri.AppendPath(workloadImpactName, true); + uri.AppendPath("/insights/", false); + uri.AppendPath(insightName, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// Get Insight resources by workloadImpactName and insightName. + /// The ID of the target subscription. The value must be an UUID. + /// workloadImpact resource. + /// Name of the insight. + /// The cancellation token to use. + /// , or is null. + /// , or is an empty string, and was expected to be non-empty. + public async Task> GetAsync(string subscriptionId, string workloadImpactName, string insightName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + Argument.AssertNotNullOrEmpty(insightName, nameof(insightName)); + + using var message = CreateGetRequest(subscriptionId, workloadImpactName, insightName); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + InsightData value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = InsightData.DeserializeInsightData(document.RootElement); + return Response.FromValue(value, message.Response); + } + case 404: + return Response.FromValue((InsightData)null, message.Response); + default: + throw new RequestFailedException(message.Response); + } + } + + /// Get Insight resources by workloadImpactName and insightName. + /// The ID of the target subscription. The value must be an UUID. + /// workloadImpact resource. + /// Name of the insight. + /// The cancellation token to use. + /// , or is null. + /// , or is an empty string, and was expected to be non-empty. + public Response Get(string subscriptionId, string workloadImpactName, string insightName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + Argument.AssertNotNullOrEmpty(insightName, nameof(insightName)); + + using var message = CreateGetRequest(subscriptionId, workloadImpactName, insightName); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + InsightData value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = InsightData.DeserializeInsightData(document.RootElement); + return Response.FromValue(value, message.Response); + } + case 404: + return Response.FromValue((InsightData)null, message.Response); + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateListBySubscriptionRequestUri(string subscriptionId, string workloadImpactName) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/workloadImpacts/", false); + uri.AppendPath(workloadImpactName, true); + uri.AppendPath("/insights", false); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateListBySubscriptionRequest(string subscriptionId, string workloadImpactName) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Get; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/workloadImpacts/", false); + uri.AppendPath(workloadImpactName, true); + uri.AppendPath("/insights", false); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// List Insight resources by workloadImpactName. + /// The ID of the target subscription. The value must be an UUID. + /// workloadImpact resource. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public async Task> ListBySubscriptionAsync(string subscriptionId, string workloadImpactName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + + using var message = CreateListBySubscriptionRequest(subscriptionId, workloadImpactName); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + InsightListResult value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = InsightListResult.DeserializeInsightListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + /// List Insight resources by workloadImpactName. + /// The ID of the target subscription. The value must be an UUID. + /// workloadImpact resource. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public Response ListBySubscription(string subscriptionId, string workloadImpactName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + + using var message = CreateListBySubscriptionRequest(subscriptionId, workloadImpactName); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + InsightListResult value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = InsightListResult.DeserializeInsightListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateCreateRequestUri(string subscriptionId, string workloadImpactName, string insightName, InsightData data) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/workloadImpacts/", false); + uri.AppendPath(workloadImpactName, true); + uri.AppendPath("/insights/", false); + uri.AppendPath(insightName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateCreateRequest(string subscriptionId, string workloadImpactName, string insightName, InsightData data) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Put; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/workloadImpacts/", false); + uri.AppendPath(workloadImpactName, true); + uri.AppendPath("/insights/", false); + uri.AppendPath(insightName, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + request.Headers.Add("Content-Type", "application/json"); + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(data, ModelSerializationExtensions.WireOptions); + request.Content = content; + _userAgent.Apply(message); + return message; + } + + /// Create Insight resource, This is Admin only operation. + /// The ID of the target subscription. The value must be an UUID. + /// workloadImpact resource. + /// Name of the insight. + /// Resource create parameters. + /// The cancellation token to use. + /// , , or is null. + /// , or is an empty string, and was expected to be non-empty. + public async Task> CreateAsync(string subscriptionId, string workloadImpactName, string insightName, InsightData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + Argument.AssertNotNullOrEmpty(insightName, nameof(insightName)); + Argument.AssertNotNull(data, nameof(data)); + + using var message = CreateCreateRequest(subscriptionId, workloadImpactName, insightName, data); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + case 201: + { + InsightData value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = InsightData.DeserializeInsightData(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + /// Create Insight resource, This is Admin only operation. + /// The ID of the target subscription. The value must be an UUID. + /// workloadImpact resource. + /// Name of the insight. + /// Resource create parameters. + /// The cancellation token to use. + /// , , or is null. + /// , or is an empty string, and was expected to be non-empty. + public Response Create(string subscriptionId, string workloadImpactName, string insightName, InsightData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + Argument.AssertNotNullOrEmpty(insightName, nameof(insightName)); + Argument.AssertNotNull(data, nameof(data)); + + using var message = CreateCreateRequest(subscriptionId, workloadImpactName, insightName, data); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + case 201: + { + InsightData value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = InsightData.DeserializeInsightData(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateDeleteRequestUri(string subscriptionId, string workloadImpactName, string insightName) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/workloadImpacts/", false); + uri.AppendPath(workloadImpactName, true); + uri.AppendPath("/insights/", false); + uri.AppendPath(insightName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateDeleteRequest(string subscriptionId, string workloadImpactName, string insightName) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Delete; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/workloadImpacts/", false); + uri.AppendPath(workloadImpactName, true); + uri.AppendPath("/insights/", false); + uri.AppendPath(insightName, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// Delete Insight resource, This is Admin only operation. + /// The ID of the target subscription. The value must be an UUID. + /// workloadImpact resource. + /// Name of the insight. + /// The cancellation token to use. + /// , or is null. + /// , or is an empty string, and was expected to be non-empty. + public async Task DeleteAsync(string subscriptionId, string workloadImpactName, string insightName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + Argument.AssertNotNullOrEmpty(insightName, nameof(insightName)); + + using var message = CreateDeleteRequest(subscriptionId, workloadImpactName, insightName); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + case 204: + return message.Response; + default: + throw new RequestFailedException(message.Response); + } + } + + /// Delete Insight resource, This is Admin only operation. + /// The ID of the target subscription. The value must be an UUID. + /// workloadImpact resource. + /// Name of the insight. + /// The cancellation token to use. + /// , or is null. + /// , or is an empty string, and was expected to be non-empty. + public Response Delete(string subscriptionId, string workloadImpactName, string insightName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + Argument.AssertNotNullOrEmpty(insightName, nameof(insightName)); + + using var message = CreateDeleteRequest(subscriptionId, workloadImpactName, insightName); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + case 204: + return message.Response; + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateListBySubscriptionNextPageRequestUri(string nextLink, string subscriptionId, string workloadImpactName) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendRawNextLink(nextLink, false); + return uri; + } + + internal HttpMessage CreateListBySubscriptionNextPageRequest(string nextLink, string subscriptionId, string workloadImpactName) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Get; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendRawNextLink(nextLink, false); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// List Insight resources by workloadImpactName. + /// The URL to the next page of results. + /// The ID of the target subscription. The value must be an UUID. + /// workloadImpact resource. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + public async Task> ListBySubscriptionNextPageAsync(string nextLink, string subscriptionId, string workloadImpactName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(nextLink, nameof(nextLink)); + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + + using var message = CreateListBySubscriptionNextPageRequest(nextLink, subscriptionId, workloadImpactName); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + InsightListResult value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = InsightListResult.DeserializeInsightListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + /// List Insight resources by workloadImpactName. + /// The URL to the next page of results. + /// The ID of the target subscription. The value must be an UUID. + /// workloadImpact resource. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + public Response ListBySubscriptionNextPage(string nextLink, string subscriptionId, string workloadImpactName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(nextLink, nameof(nextLink)); + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + + using var message = CreateListBySubscriptionNextPageRequest(nextLink, subscriptionId, workloadImpactName); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + InsightListResult value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = InsightListResult.DeserializeInsightListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/RestOperations/WorkloadImpactsRestOperations.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/RestOperations/WorkloadImpactsRestOperations.cs new file mode 100644 index 000000000000..65559c0e6fc5 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/RestOperations/WorkloadImpactsRestOperations.cs @@ -0,0 +1,441 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.ImpactReporting.Models; + +namespace Azure.ResourceManager.ImpactReporting +{ + internal partial class WorkloadImpactsRestOperations + { + private readonly TelemetryDetails _userAgent; + private readonly HttpPipeline _pipeline; + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of WorkloadImpactsRestOperations. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// The application id to use for user agent. + /// Service host. + /// The API version to use for this operation. + /// or is null. + public WorkloadImpactsRestOperations(HttpPipeline pipeline, string applicationId, Uri endpoint = null, string apiVersion = default) + { + _pipeline = pipeline ?? throw new ArgumentNullException(nameof(pipeline)); + _endpoint = endpoint ?? new Uri("https://management.azure.com"); + _apiVersion = apiVersion ?? "2024-05-01-preview"; + _userAgent = new TelemetryDetails(GetType().Assembly, applicationId); + } + + internal RequestUriBuilder CreateCreateRequestUri(string subscriptionId, string workloadImpactName, WorkloadImpactData data) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/workloadImpacts/", false); + uri.AppendPath(workloadImpactName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateCreateRequest(string subscriptionId, string workloadImpactName, WorkloadImpactData data) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Put; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/workloadImpacts/", false); + uri.AppendPath(workloadImpactName, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + request.Headers.Add("Content-Type", "application/json"); + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(data, ModelSerializationExtensions.WireOptions); + request.Content = content; + _userAgent.Apply(message); + return message; + } + + /// Create a WorkloadImpact. + /// The ID of the target subscription. The value must be an UUID. + /// workloadImpact resource. + /// Resource create parameters. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + public async Task CreateAsync(string subscriptionId, string workloadImpactName, WorkloadImpactData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + Argument.AssertNotNull(data, nameof(data)); + + using var message = CreateCreateRequest(subscriptionId, workloadImpactName, data); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + case 201: + return message.Response; + default: + throw new RequestFailedException(message.Response); + } + } + + /// Create a WorkloadImpact. + /// The ID of the target subscription. The value must be an UUID. + /// workloadImpact resource. + /// Resource create parameters. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + public Response Create(string subscriptionId, string workloadImpactName, WorkloadImpactData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + Argument.AssertNotNull(data, nameof(data)); + + using var message = CreateCreateRequest(subscriptionId, workloadImpactName, data); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + case 201: + return message.Response; + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateGetRequestUri(string subscriptionId, string workloadImpactName) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/workloadImpacts/", false); + uri.AppendPath(workloadImpactName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateGetRequest(string subscriptionId, string workloadImpactName) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Get; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/workloadImpacts/", false); + uri.AppendPath(workloadImpactName, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// Get a WorkloadImpact. + /// The ID of the target subscription. The value must be an UUID. + /// workloadImpact resource. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public async Task> GetAsync(string subscriptionId, string workloadImpactName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + + using var message = CreateGetRequest(subscriptionId, workloadImpactName); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + WorkloadImpactData value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = WorkloadImpactData.DeserializeWorkloadImpactData(document.RootElement); + return Response.FromValue(value, message.Response); + } + case 404: + return Response.FromValue((WorkloadImpactData)null, message.Response); + default: + throw new RequestFailedException(message.Response); + } + } + + /// Get a WorkloadImpact. + /// The ID of the target subscription. The value must be an UUID. + /// workloadImpact resource. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public Response Get(string subscriptionId, string workloadImpactName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + + using var message = CreateGetRequest(subscriptionId, workloadImpactName); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + WorkloadImpactData value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = WorkloadImpactData.DeserializeWorkloadImpactData(document.RootElement); + return Response.FromValue(value, message.Response); + } + case 404: + return Response.FromValue((WorkloadImpactData)null, message.Response); + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateDeleteRequestUri(string subscriptionId, string workloadImpactName) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/workloadImpacts/", false); + uri.AppendPath(workloadImpactName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateDeleteRequest(string subscriptionId, string workloadImpactName) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Delete; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/workloadImpacts/", false); + uri.AppendPath(workloadImpactName, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// Delete a WorkloadImpact. + /// The ID of the target subscription. The value must be an UUID. + /// workloadImpact resource. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public async Task DeleteAsync(string subscriptionId, string workloadImpactName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + + using var message = CreateDeleteRequest(subscriptionId, workloadImpactName); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + case 204: + return message.Response; + default: + throw new RequestFailedException(message.Response); + } + } + + /// Delete a WorkloadImpact. + /// The ID of the target subscription. The value must be an UUID. + /// workloadImpact resource. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public Response Delete(string subscriptionId, string workloadImpactName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + + using var message = CreateDeleteRequest(subscriptionId, workloadImpactName); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + case 204: + return message.Response; + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateListBySubscriptionRequestUri(string subscriptionId) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/workloadImpacts", false); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateListBySubscriptionRequest(string subscriptionId) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Get; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Impact/workloadImpacts", false); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// List WorkloadImpact resources by subscription ID. + /// The ID of the target subscription. The value must be an UUID. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public async Task> ListBySubscriptionAsync(string subscriptionId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + + using var message = CreateListBySubscriptionRequest(subscriptionId); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + WorkloadImpactListResult value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = WorkloadImpactListResult.DeserializeWorkloadImpactListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + /// List WorkloadImpact resources by subscription ID. + /// The ID of the target subscription. The value must be an UUID. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public Response ListBySubscription(string subscriptionId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + + using var message = CreateListBySubscriptionRequest(subscriptionId); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + WorkloadImpactListResult value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = WorkloadImpactListResult.DeserializeWorkloadImpactListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateListBySubscriptionNextPageRequestUri(string nextLink, string subscriptionId) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendRawNextLink(nextLink, false); + return uri; + } + + internal HttpMessage CreateListBySubscriptionNextPageRequest(string nextLink, string subscriptionId) + { + var message = _pipeline.CreateMessage(); + var request = message.Request; + request.Method = RequestMethod.Get; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendRawNextLink(nextLink, false); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// List WorkloadImpact resources by subscription ID. + /// The URL to the next page of results. + /// The ID of the target subscription. The value must be an UUID. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public async Task> ListBySubscriptionNextPageAsync(string nextLink, string subscriptionId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(nextLink, nameof(nextLink)); + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + + using var message = CreateListBySubscriptionNextPageRequest(nextLink, subscriptionId); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + WorkloadImpactListResult value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = WorkloadImpactListResult.DeserializeWorkloadImpactListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + /// List WorkloadImpact resources by subscription ID. + /// The URL to the next page of results. + /// The ID of the target subscription. The value must be an UUID. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public Response ListBySubscriptionNextPage(string nextLink, string subscriptionId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(nextLink, nameof(nextLink)); + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + + using var message = CreateListBySubscriptionNextPageRequest(nextLink, subscriptionId); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + WorkloadImpactListResult value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = WorkloadImpactListResult.DeserializeWorkloadImpactListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactCollection.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactCollection.cs new file mode 100644 index 000000000000..a3990e046fb9 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactCollection.cs @@ -0,0 +1,494 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Threading; +using System.Threading.Tasks; +using Autorest.CSharp.Core; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.ImpactReporting +{ + /// + /// A class representing a collection of and their operations. + /// Each in the collection will belong to the same instance of . + /// To get a instance call the GetWorkloadImpacts method from an instance of . + /// + public partial class WorkloadImpactCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _workloadImpactClientDiagnostics; + private readonly WorkloadImpactsRestOperations _workloadImpactRestClient; + + /// Initializes a new instance of the class for mocking. + protected WorkloadImpactCollection() + { + } + + /// Initializes a new instance of the class. + /// The client parameters to use in these operations. + /// The identifier of the parent resource that is the target of operations. + internal WorkloadImpactCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + _workloadImpactClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.ImpactReporting", WorkloadImpactResource.ResourceType.Namespace, Diagnostics); + TryGetApiVersion(WorkloadImpactResource.ResourceType, out string workloadImpactApiVersion); + _workloadImpactRestClient = new WorkloadImpactsRestOperations(Pipeline, Diagnostics.ApplicationId, Endpoint, workloadImpactApiVersion); +#if DEBUG + ValidateResourceId(Id); +#endif + } + + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != SubscriptionResource.ResourceType) + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "Invalid resource type {0} expected {1}", id.ResourceType, SubscriptionResource.ResourceType), nameof(id)); + } + + /// + /// Create a WorkloadImpact + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Create + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// workloadImpact resource. + /// Resource create parameters. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// or is null. + public virtual async Task> CreateOrUpdateAsync(WaitUntil waitUntil, string workloadImpactName, WorkloadImpactData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + Argument.AssertNotNull(data, nameof(data)); + + using var scope = _workloadImpactClientDiagnostics.CreateScope("WorkloadImpactCollection.CreateOrUpdate"); + scope.Start(); + try + { + var response = await _workloadImpactRestClient.CreateAsync(Id.SubscriptionId, workloadImpactName, data, cancellationToken).ConfigureAwait(false); + var operation = new ImpactReportingArmOperation(new WorkloadImpactOperationSource(Client), _workloadImpactClientDiagnostics, Pipeline, _workloadImpactRestClient.CreateCreateRequest(Id.SubscriptionId, workloadImpactName, data).Request, response, OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Create a WorkloadImpact + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Create + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// workloadImpact resource. + /// Resource create parameters. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// or is null. + public virtual ArmOperation CreateOrUpdate(WaitUntil waitUntil, string workloadImpactName, WorkloadImpactData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + Argument.AssertNotNull(data, nameof(data)); + + using var scope = _workloadImpactClientDiagnostics.CreateScope("WorkloadImpactCollection.CreateOrUpdate"); + scope.Start(); + try + { + var response = _workloadImpactRestClient.Create(Id.SubscriptionId, workloadImpactName, data, cancellationToken); + var operation = new ImpactReportingArmOperation(new WorkloadImpactOperationSource(Client), _workloadImpactClientDiagnostics, Pipeline, _workloadImpactRestClient.CreateCreateRequest(Id.SubscriptionId, workloadImpactName, data).Request, response, OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + operation.WaitForCompletion(cancellationToken); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a WorkloadImpact + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// workloadImpact resource. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual async Task> GetAsync(string workloadImpactName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + + using var scope = _workloadImpactClientDiagnostics.CreateScope("WorkloadImpactCollection.Get"); + scope.Start(); + try + { + var response = await _workloadImpactRestClient.GetAsync(Id.SubscriptionId, workloadImpactName, cancellationToken).ConfigureAwait(false); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new WorkloadImpactResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a WorkloadImpact + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// workloadImpact resource. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual Response Get(string workloadImpactName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + + using var scope = _workloadImpactClientDiagnostics.CreateScope("WorkloadImpactCollection.Get"); + scope.Start(); + try + { + var response = _workloadImpactRestClient.Get(Id.SubscriptionId, workloadImpactName, cancellationToken); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new WorkloadImpactResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// List WorkloadImpact resources by subscription ID + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts + /// + /// + /// Operation Id + /// WorkloadImpact_ListBySubscription + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + /// An async collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetAllAsync(CancellationToken cancellationToken = default) + { + HttpMessage FirstPageRequest(int? pageSizeHint) => _workloadImpactRestClient.CreateListBySubscriptionRequest(Id.SubscriptionId); + HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => _workloadImpactRestClient.CreateListBySubscriptionNextPageRequest(nextLink, Id.SubscriptionId); + return GeneratorPageableHelpers.CreateAsyncPageable(FirstPageRequest, NextPageRequest, e => new WorkloadImpactResource(Client, WorkloadImpactData.DeserializeWorkloadImpactData(e)), _workloadImpactClientDiagnostics, Pipeline, "WorkloadImpactCollection.GetAll", "value", "nextLink", cancellationToken); + } + + /// + /// List WorkloadImpact resources by subscription ID + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts + /// + /// + /// Operation Id + /// WorkloadImpact_ListBySubscription + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetAll(CancellationToken cancellationToken = default) + { + HttpMessage FirstPageRequest(int? pageSizeHint) => _workloadImpactRestClient.CreateListBySubscriptionRequest(Id.SubscriptionId); + HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => _workloadImpactRestClient.CreateListBySubscriptionNextPageRequest(nextLink, Id.SubscriptionId); + return GeneratorPageableHelpers.CreatePageable(FirstPageRequest, NextPageRequest, e => new WorkloadImpactResource(Client, WorkloadImpactData.DeserializeWorkloadImpactData(e)), _workloadImpactClientDiagnostics, Pipeline, "WorkloadImpactCollection.GetAll", "value", "nextLink", cancellationToken); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// workloadImpact resource. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual async Task> ExistsAsync(string workloadImpactName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + + using var scope = _workloadImpactClientDiagnostics.CreateScope("WorkloadImpactCollection.Exists"); + scope.Start(); + try + { + var response = await _workloadImpactRestClient.GetAsync(Id.SubscriptionId, workloadImpactName, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// workloadImpact resource. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual Response Exists(string workloadImpactName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + + using var scope = _workloadImpactClientDiagnostics.CreateScope("WorkloadImpactCollection.Exists"); + scope.Start(); + try + { + var response = _workloadImpactRestClient.Get(Id.SubscriptionId, workloadImpactName, cancellationToken: cancellationToken); + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// workloadImpact resource. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual async Task> GetIfExistsAsync(string workloadImpactName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + + using var scope = _workloadImpactClientDiagnostics.CreateScope("WorkloadImpactCollection.GetIfExists"); + scope.Start(); + try + { + var response = await _workloadImpactRestClient.GetAsync(Id.SubscriptionId, workloadImpactName, cancellationToken: cancellationToken).ConfigureAwait(false); + if (response.Value == null) + return new NoValueResponse(response.GetRawResponse()); + return Response.FromValue(new WorkloadImpactResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// workloadImpact resource. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual NullableResponse GetIfExists(string workloadImpactName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workloadImpactName, nameof(workloadImpactName)); + + using var scope = _workloadImpactClientDiagnostics.CreateScope("WorkloadImpactCollection.GetIfExists"); + scope.Start(); + try + { + var response = _workloadImpactRestClient.Get(Id.SubscriptionId, workloadImpactName, cancellationToken: cancellationToken); + if (response.Value == null) + return new NoValueResponse(response.GetRawResponse()); + return Response.FromValue(new WorkloadImpactResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IAsyncEnumerator IAsyncEnumerable.GetAsyncEnumerator(CancellationToken cancellationToken) + { + return GetAllAsync(cancellationToken: cancellationToken).GetAsyncEnumerator(cancellationToken); + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactData.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactData.Serialization.cs new file mode 100644 index 000000000000..e8cf2d134214 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactData.Serialization.cs @@ -0,0 +1,155 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; +using Azure.ResourceManager.ImpactReporting.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.ImpactReporting +{ + public partial class WorkloadImpactData : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkloadImpactData)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + WorkloadImpactData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkloadImpactData)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeWorkloadImpactData(document.RootElement, options); + } + + internal static WorkloadImpactData DeserializeWorkloadImpactData(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + WorkloadImpactProperties properties = default; + ResourceIdentifier id = default; + string name = default; + ResourceType type = default; + SystemData systemData = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("properties"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = WorkloadImpactProperties.DeserializeWorkloadImpactProperties(property.Value, options); + continue; + } + if (property.NameEquals("id"u8)) + { + id = new ResourceIdentifier(property.Value.GetString()); + continue; + } + if (property.NameEquals("name"u8)) + { + name = property.Value.GetString(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = new ResourceType(property.Value.GetString()); + continue; + } + if (property.NameEquals("systemData"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = JsonSerializer.Deserialize(property.Value.GetRawText()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new WorkloadImpactData( + id, + name, + type, + systemData, + properties, + serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(WorkloadImpactData)} does not support writing '{options.Format}' format."); + } + } + + WorkloadImpactData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeWorkloadImpactData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(WorkloadImpactData)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactData.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactData.cs new file mode 100644 index 000000000000..88aee464ed2d --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactData.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.ImpactReporting.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.ImpactReporting +{ + /// + /// A class representing the WorkloadImpact data model. + /// Workload Impact properties + /// + public partial class WorkloadImpactData : ResourceData + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + public WorkloadImpactData() + { + } + + /// Initializes a new instance of . + /// The id. + /// The name. + /// The resourceType. + /// The systemData. + /// The resource-specific properties for this resource. + /// Keeps track of any properties unknown to the library. + internal WorkloadImpactData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, WorkloadImpactProperties properties, IDictionary serializedAdditionalRawData) : base(id, name, resourceType, systemData) + { + Properties = properties; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The resource-specific properties for this resource. + public WorkloadImpactProperties Properties { get; set; } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactResource.Serialization.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactResource.Serialization.cs new file mode 100644 index 000000000000..0fede991d873 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactResource.Serialization.cs @@ -0,0 +1,26 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace Azure.ResourceManager.ImpactReporting +{ + public partial class WorkloadImpactResource : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + WorkloadImpactData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => ((IJsonModel)Data).Create(ref reader, options); + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options); + + WorkloadImpactData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options); + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => ((IPersistableModel)Data).GetFormatFromOptions(options); + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactResource.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactResource.cs new file mode 100644 index 000000000000..ed77e2ebe516 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Generated/WorkloadImpactResource.cs @@ -0,0 +1,419 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Globalization; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.ImpactReporting +{ + /// + /// A Class representing a WorkloadImpact along with the instance operations that can be performed on it. + /// If you have a you can construct a + /// from an instance of using the GetWorkloadImpactResource method. + /// Otherwise you can get one from its parent resource using the GetWorkloadImpact method. + /// + public partial class WorkloadImpactResource : ArmResource + { + /// Generate the resource identifier of a instance. + /// The subscriptionId. + /// The workloadImpactName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string workloadImpactName) + { + var resourceId = $"/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}"; + return new ResourceIdentifier(resourceId); + } + + private readonly ClientDiagnostics _workloadImpactClientDiagnostics; + private readonly WorkloadImpactsRestOperations _workloadImpactRestClient; + private readonly WorkloadImpactData _data; + + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Impact/workloadImpacts"; + + /// Initializes a new instance of the class for mocking. + protected WorkloadImpactResource() + { + } + + /// Initializes a new instance of the class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal WorkloadImpactResource(ArmClient client, WorkloadImpactData data) : this(client, data.Id) + { + HasData = true; + _data = data; + } + + /// Initializes a new instance of the class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal WorkloadImpactResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + _workloadImpactClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.ImpactReporting", ResourceType.Namespace, Diagnostics); + TryGetApiVersion(ResourceType, out string workloadImpactApiVersion); + _workloadImpactRestClient = new WorkloadImpactsRestOperations(Pipeline, Diagnostics.ApplicationId, Endpoint, workloadImpactApiVersion); +#if DEBUG + ValidateResourceId(Id); +#endif + } + + /// Gets whether or not the current instance has data. + public virtual bool HasData { get; } + + /// Gets the data representing this Feature. + /// Throws if there is no data loaded in the current instance. + public virtual WorkloadImpactData Data + { + get + { + if (!HasData) + throw new InvalidOperationException("The current instance does not have data, you must call Get first."); + return _data; + } + } + + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceType) + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "Invalid resource type {0} expected {1}", id.ResourceType, ResourceType), nameof(id)); + } + + /// Gets a collection of InsightResources in the WorkloadImpact. + /// An object representing collection of InsightResources and their operations over a InsightResource. + public virtual InsightCollection GetInsights() + { + return GetCachedClient(client => new InsightCollection(client, Id)); + } + + /// + /// Get Insight resources by workloadImpactName and insightName + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName} + /// + /// + /// Operation Id + /// Insight_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of the insight. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetInsightAsync(string insightName, CancellationToken cancellationToken = default) + { + return await GetInsights().GetAsync(insightName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get Insight resources by workloadImpactName and insightName + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName} + /// + /// + /// Operation Id + /// Insight_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of the insight. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetInsight(string insightName, CancellationToken cancellationToken = default) + { + return GetInsights().Get(insightName, cancellationToken); + } + + /// + /// Get a WorkloadImpact + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using var scope = _workloadImpactClientDiagnostics.CreateScope("WorkloadImpactResource.Get"); + scope.Start(); + try + { + var response = await _workloadImpactRestClient.GetAsync(Id.SubscriptionId, Id.Name, cancellationToken).ConfigureAwait(false); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new WorkloadImpactResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a WorkloadImpact + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Get + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using var scope = _workloadImpactClientDiagnostics.CreateScope("WorkloadImpactResource.Get"); + scope.Start(); + try + { + var response = _workloadImpactRestClient.Get(Id.SubscriptionId, Id.Name, cancellationToken); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new WorkloadImpactResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a WorkloadImpact + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Delete + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual async Task DeleteAsync(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using var scope = _workloadImpactClientDiagnostics.CreateScope("WorkloadImpactResource.Delete"); + scope.Start(); + try + { + var response = await _workloadImpactRestClient.DeleteAsync(Id.SubscriptionId, Id.Name, cancellationToken).ConfigureAwait(false); + var uri = _workloadImpactRestClient.CreateDeleteRequestUri(Id.SubscriptionId, Id.Name); + var rehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(RequestMethod.Delete, uri.ToUri(), uri.ToString(), "None", null, OperationFinalStateVia.OriginalUri.ToString()); + var operation = new ImpactReportingArmOperation(response, rehydrationToken); + if (waitUntil == WaitUntil.Completed) + await operation.WaitForCompletionResponseAsync(cancellationToken).ConfigureAwait(false); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a WorkloadImpact + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Delete + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual ArmOperation Delete(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using var scope = _workloadImpactClientDiagnostics.CreateScope("WorkloadImpactResource.Delete"); + scope.Start(); + try + { + var response = _workloadImpactRestClient.Delete(Id.SubscriptionId, Id.Name, cancellationToken); + var uri = _workloadImpactRestClient.CreateDeleteRequestUri(Id.SubscriptionId, Id.Name); + var rehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(RequestMethod.Delete, uri.ToUri(), uri.ToString(), "None", null, OperationFinalStateVia.OriginalUri.ToString()); + var operation = new ImpactReportingArmOperation(response, rehydrationToken); + if (waitUntil == WaitUntil.Completed) + operation.WaitForCompletionResponse(cancellationToken); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Create a WorkloadImpact + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Create + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// Resource create parameters. + /// The cancellation token to use. + /// is null. + public virtual async Task> UpdateAsync(WaitUntil waitUntil, WorkloadImpactData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using var scope = _workloadImpactClientDiagnostics.CreateScope("WorkloadImpactResource.Update"); + scope.Start(); + try + { + var response = await _workloadImpactRestClient.CreateAsync(Id.SubscriptionId, Id.Name, data, cancellationToken).ConfigureAwait(false); + var operation = new ImpactReportingArmOperation(new WorkloadImpactOperationSource(Client), _workloadImpactClientDiagnostics, Pipeline, _workloadImpactRestClient.CreateCreateRequest(Id.SubscriptionId, Id.Name, data).Request, response, OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Create a WorkloadImpact + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName} + /// + /// + /// Operation Id + /// WorkloadImpact_Create + /// + /// + /// Default Api Version + /// 2024-05-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// Resource create parameters. + /// The cancellation token to use. + /// is null. + public virtual ArmOperation Update(WaitUntil waitUntil, WorkloadImpactData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using var scope = _workloadImpactClientDiagnostics.CreateScope("WorkloadImpactResource.Update"); + scope.Start(); + try + { + var response = _workloadImpactRestClient.Create(Id.SubscriptionId, Id.Name, data, cancellationToken); + var operation = new ImpactReportingArmOperation(new WorkloadImpactOperationSource(Client), _workloadImpactClientDiagnostics, Pipeline, _workloadImpactRestClient.CreateCreateRequest(Id.SubscriptionId, Id.Name, data).Request, response, OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + operation.WaitForCompletion(cancellationToken); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Properties/AssemblyInfo.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Properties/AssemblyInfo.cs new file mode 100644 index 000000000000..e5dd7e731e1b --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/src/Properties/AssemblyInfo.cs @@ -0,0 +1,11 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("Azure.ResourceManager.ImpactReporting.Tests, PublicKey = 0024000004800000940000000602000000240000525341310004000001000100d15ddcb29688295338af4b7686603fe614abd555e09efba8fb88ee09e1f7b1ccaeed2e8f823fa9eef3fdd60217fc012ea67d2479751a0b8c087a4185541b851bd8b16f8d91b840e51b1cb0ba6fe647997e57429265e85ef62d565db50a69ae1647d54d7bd855e4db3d8a91510e5bcbd0edfbbecaa20a7bd9ae74593daa7b11b4")] + +// Replace Microsoft.Test with the correct resource provider namepace for your service and uncomment. +// See https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-services-resource-providers +// for the list of possible values. +[assembly: Azure.Core.AzureResourceProviderNamespace("ImpactReporting")] diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/tests/Azure.ResourceManager.ImpactReporting.Tests.csproj b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/tests/Azure.ResourceManager.ImpactReporting.Tests.csproj new file mode 100644 index 000000000000..bb52a13a69e6 --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/tests/Azure.ResourceManager.ImpactReporting.Tests.csproj @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/tests/ImpactReportingManagementTestBase.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/tests/ImpactReportingManagementTestBase.cs new file mode 100644 index 000000000000..5c2bc05c5d1a --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/tests/ImpactReportingManagementTestBase.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using Azure; +using Azure.Core; +using Azure.Core.TestFramework; +using Azure.ResourceManager; +using Azure.ResourceManager.Resources; +using Azure.ResourceManager.TestFramework; +using NUnit.Framework; +using System.Threading.Tasks; + +namespace Azure.ResourceManager.ImpactReporting.Tests +{ + public class ImpactReportingManagementTestBase : ManagementRecordedTestBase + { + protected ArmClient Client { get; private set; } + protected SubscriptionResource DefaultSubscription { get; private set; } + + protected ImpactReportingManagementTestBase(bool isAsync, RecordedTestMode mode) + : base(isAsync, mode) + { + } + + protected ImpactReportingManagementTestBase(bool isAsync) + : base(isAsync) + { + } + + [SetUp] + public async Task CreateCommonClient() + { + Client = GetArmClient(); + DefaultSubscription = await Client.GetDefaultSubscriptionAsync().ConfigureAwait(false); + } + + protected async Task CreateResourceGroup(SubscriptionResource subscription, string rgNamePrefix, AzureLocation location) + { + string rgName = Recording.GenerateAssetName(rgNamePrefix); + ResourceGroupData input = new ResourceGroupData(location); + var lro = await subscription.GetResourceGroups().CreateOrUpdateAsync(WaitUntil.Completed, rgName, input); + return lro.Value; + } + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/tests/ImpactReportingManagementTestEnvironment.cs b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/tests/ImpactReportingManagementTestEnvironment.cs new file mode 100644 index 000000000000..ac5b6e7c9f9b --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/tests/ImpactReportingManagementTestEnvironment.cs @@ -0,0 +1,11 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using Azure.Core.TestFramework; + +namespace Azure.ResourceManager.ImpactReporting.Tests +{ + public class ImpactReportingManagementTestEnvironment : TestEnvironment + { + } +} diff --git a/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/tsp-location.yaml b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/tsp-location.yaml new file mode 100644 index 000000000000..0d3b338f9a6e --- /dev/null +++ b/sdk/impactreporting/Azure.ResourceManager.ImpactReporting/tsp-location.yaml @@ -0,0 +1,4 @@ +directory: specification/impact/Impact.Management +commit: 867d5344efa0e71c7fa4977eb814398f67aa8ee1 +repo: Azure/azure-rest-api-specs +additionalDirectories: diff --git a/sdk/impactreporting/ci.mgmt.yml b/sdk/impactreporting/ci.mgmt.yml new file mode 100644 index 000000000000..f476798de69a --- /dev/null +++ b/sdk/impactreporting/ci.mgmt.yml @@ -0,0 +1,26 @@ +# NOTE: Please refer to https://aka.ms/azsdk/engsys/ci-yaml before editing this file. + +trigger: none + +pr: + branches: + include: + - main + - feature/* + - hotfix/* + - release/* + paths: + include: + - sdk/impactreporting /ci.mgmt.yml + - sdk/impactreporting /Azure.ResourceManager.ImpactReporting / + + +extends: + template: /eng/pipelines/templates/stages/archetype-sdk-client.yml + parameters: + ServiceDirectory: impactreporting + ArtifactName: packages + LimitForPullRequest: true + Artifacts: + - name: Azure.ResourceManager.ImpactReporting + safeName: AzureResourceManagerImpactReporting diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/Microsoft.App.DynamicSessions.sln b/sdk/microsoft.app/Microsoft.App.DynamicSessions/Microsoft.App.DynamicSessions.sln new file mode 100644 index 000000000000..1e89be24951a --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/Microsoft.App.DynamicSessions.sln @@ -0,0 +1,50 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29709.97 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.App.DynamicSessions", "src\Microsoft.App.DynamicSessions.csproj", "{28FF4005-4467-4E36-92E7-DEA27DEB1519}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.App.DynamicSessions.Tests", "tests\Microsoft.App.DynamicSessions.Tests.csproj", "{1F1CD1D4-9932-4B73-99D8-C252A67D4B46}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B0C276D1-2930-4887-B29A-D1A33E7009A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B0C276D1-2930-4887-B29A-D1A33E7009A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B0C276D1-2930-4887-B29A-D1A33E7009A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B0C276D1-2930-4887-B29A-D1A33E7009A2}.Release|Any CPU.Build.0 = Release|Any CPU + {8E9A77AC-792A-4432-8320-ACFD46730401}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E9A77AC-792A-4432-8320-ACFD46730401}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E9A77AC-792A-4432-8320-ACFD46730401}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E9A77AC-792A-4432-8320-ACFD46730401}.Release|Any CPU.Build.0 = Release|Any CPU + {A4241C1F-A53D-474C-9E4E-075054407E74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4241C1F-A53D-474C-9E4E-075054407E74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4241C1F-A53D-474C-9E4E-075054407E74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4241C1F-A53D-474C-9E4E-075054407E74}.Release|Any CPU.Build.0 = Release|Any CPU + {FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Release|Any CPU.Build.0 = Release|Any CPU + {85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Release|Any CPU.Build.0 = Release|Any CPU + {28FF4005-4467-4E36-92E7-DEA27DEB1519}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28FF4005-4467-4E36-92E7-DEA27DEB1519}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28FF4005-4467-4E36-92E7-DEA27DEB1519}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28FF4005-4467-4E36-92E7-DEA27DEB1519}.Release|Any CPU.Build.0 = Release|Any CPU + {1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A97F4B90-2591-4689-B1F8-5F21FE6D6CAE} + EndGlobalSection +EndGlobal diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/CodeExecution.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/CodeExecution.cs new file mode 100644 index 000000000000..1ad451e837bc --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/CodeExecution.cs @@ -0,0 +1,355 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Microsoft.App.DynamicSessions +{ + // Data plane generated sub-client. + /// The CodeExecution sub-client. + public partial class CodeExecution + { + private static readonly string[] AuthorizationScopes = new string[] { "https://dynamicsessions.io/.default" }; + private readonly TokenCredential _tokenCredential; + private readonly HttpPipeline _pipeline; + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// The ClientDiagnostics is used to provide tracing support for the client library. + internal ClientDiagnostics ClientDiagnostics { get; } + + /// The HTTP pipeline for sending and receiving REST requests and responses. + public virtual HttpPipeline Pipeline => _pipeline; + + /// Initializes a new instance of CodeExecution for mocking. + protected CodeExecution() + { + } + + /// Initializes a new instance of CodeExecution. + /// The handler for diagnostic messaging in the client. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// The token credential to copy. + /// The management endpoint of the session pool. + /// The API version to use for this operation. + internal CodeExecution(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, TokenCredential tokenCredential, Uri endpoint, string apiVersion) + { + ClientDiagnostics = clientDiagnostics; + _pipeline = pipeline; + _tokenCredential = tokenCredential; + _endpoint = endpoint; + _apiVersion = apiVersion; + } + + /// Get the code execution result. + /// Session code execution id. + /// The user-assigned identifier of the session. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + /// + public virtual async Task> GetSessionCodeExecutionResourceAsync(string executionId, string identifier, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(executionId, nameof(executionId)); + Argument.AssertNotNull(identifier, nameof(identifier)); + + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await GetSessionCodeExecutionResourceAsync(executionId, identifier, context).ConfigureAwait(false); + return Response.FromValue(SessionCodeExecutionResource.FromResponse(response), response); + } + + /// Get the code execution result. + /// Session code execution id. + /// The user-assigned identifier of the session. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + /// + public virtual Response GetSessionCodeExecutionResource(string executionId, string identifier, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(executionId, nameof(executionId)); + Argument.AssertNotNull(identifier, nameof(identifier)); + + RequestContext context = FromCancellationToken(cancellationToken); + Response response = GetSessionCodeExecutionResource(executionId, identifier, context); + return Response.FromValue(SessionCodeExecutionResource.FromResponse(response), response); + } + + /// + /// [Protocol Method] Get the code execution result. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// Please try the simpler convenience overload with strongly typed models first. + /// + /// + /// + /// + /// Session code execution id. + /// The user-assigned identifier of the session. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + /// + public virtual async Task GetSessionCodeExecutionResourceAsync(string executionId, string identifier, RequestContext context) + { + Argument.AssertNotNullOrEmpty(executionId, nameof(executionId)); + Argument.AssertNotNull(identifier, nameof(identifier)); + + using var scope = ClientDiagnostics.CreateScope("CodeExecution.GetSessionCodeExecutionResource"); + scope.Start(); + try + { + using HttpMessage message = CreateGetSessionCodeExecutionResourceRequest(executionId, identifier, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Get the code execution result. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// Please try the simpler convenience overload with strongly typed models first. + /// + /// + /// + /// + /// Session code execution id. + /// The user-assigned identifier of the session. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + /// + public virtual Response GetSessionCodeExecutionResource(string executionId, string identifier, RequestContext context) + { + Argument.AssertNotNullOrEmpty(executionId, nameof(executionId)); + Argument.AssertNotNull(identifier, nameof(identifier)); + + using var scope = ClientDiagnostics.CreateScope("CodeExecution.GetSessionCodeExecutionResource"); + scope.Start(); + try + { + using HttpMessage message = CreateGetSessionCodeExecutionResourceRequest(executionId, identifier, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Execute code in a session. + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The user-assigned identifier of the session. + /// The request to execute code. + /// The id of this execution operation. + /// The cancellation token to use. + /// or is null. + /// + public virtual async Task> ExecuteAsync(WaitUntil waitUntil, string identifier, SessionCodeExecutionRequest codeExecutionRequest, string operationId = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(identifier, nameof(identifier)); + Argument.AssertNotNull(codeExecutionRequest, nameof(codeExecutionRequest)); + + using RequestContent content = codeExecutionRequest.ToRequestContent(); + RequestContext context = FromCancellationToken(cancellationToken); + Operation response = await ExecuteAsync(waitUntil, identifier, content, operationId, context).ConfigureAwait(false); + return ProtocolOperationHelpers.Convert(response, FetchSessionCodeExecutionResultFromSessionCodeExecutionResource, ClientDiagnostics, "CodeExecution.Execute"); + } + + /// Execute code in a session. + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The user-assigned identifier of the session. + /// The request to execute code. + /// The id of this execution operation. + /// The cancellation token to use. + /// or is null. + /// + public virtual Operation Execute(WaitUntil waitUntil, string identifier, SessionCodeExecutionRequest codeExecutionRequest, string operationId = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(identifier, nameof(identifier)); + Argument.AssertNotNull(codeExecutionRequest, nameof(codeExecutionRequest)); + + using RequestContent content = codeExecutionRequest.ToRequestContent(); + RequestContext context = FromCancellationToken(cancellationToken); + Operation response = Execute(waitUntil, identifier, content, operationId, context); + return ProtocolOperationHelpers.Convert(response, FetchSessionCodeExecutionResultFromSessionCodeExecutionResource, ClientDiagnostics, "CodeExecution.Execute"); + } + + /// + /// [Protocol Method] Execute code in a session. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// Please try the simpler convenience overload with strongly typed models first. + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The user-assigned identifier of the session. + /// The content to send as the body of the request. + /// The id of this execution operation. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// Service returned a non-success status code. + /// The representing an asynchronous operation on the service. + /// + public virtual async Task> ExecuteAsync(WaitUntil waitUntil, string identifier, RequestContent content, string operationId = null, RequestContext context = null) + { + Argument.AssertNotNull(identifier, nameof(identifier)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("CodeExecution.Execute"); + scope.Start(); + try + { + using HttpMessage message = CreateExecuteRequest(identifier, content, operationId, context); + return await ProtocolOperationHelpers.ProcessMessageAsync(_pipeline, message, ClientDiagnostics, "CodeExecution.Execute", OperationFinalStateVia.OperationLocation, context, waitUntil).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Execute code in a session. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// Please try the simpler convenience overload with strongly typed models first. + /// + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The user-assigned identifier of the session. + /// The content to send as the body of the request. + /// The id of this execution operation. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// Service returned a non-success status code. + /// The representing an asynchronous operation on the service. + /// + public virtual Operation Execute(WaitUntil waitUntil, string identifier, RequestContent content, string operationId = null, RequestContext context = null) + { + Argument.AssertNotNull(identifier, nameof(identifier)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("CodeExecution.Execute"); + scope.Start(); + try + { + using HttpMessage message = CreateExecuteRequest(identifier, content, operationId, context); + return ProtocolOperationHelpers.ProcessMessage(_pipeline, message, ClientDiagnostics, "CodeExecution.Execute", OperationFinalStateVia.OperationLocation, context, waitUntil); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + internal HttpMessage CreateExecuteRequest(string identifier, RequestContent content, string operationId, RequestContext context) + { + var message = _pipeline.CreateMessage(context, ResponseClassifier202); + var request = message.Request; + request.Method = RequestMethod.Post; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/executions", false); + uri.AppendQuery("identifier", identifier, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + if (operationId != null) + { + request.Headers.Add("operation-id", operationId); + } + request.Headers.Add("Content-Type", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateGetSessionCodeExecutionResourceRequest(string executionId, string identifier, RequestContext context) + { + var message = _pipeline.CreateMessage(context, ResponseClassifier200); + var request = message.Request; + request.Method = RequestMethod.Get; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/executions/", false); + uri.AppendPath(executionId, true); + uri.AppendQuery("identifier", identifier, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + return message; + } + + private static RequestContext DefaultRequestContext = new RequestContext(); + internal static RequestContext FromCancellationToken(CancellationToken cancellationToken = default) + { + if (!cancellationToken.CanBeCanceled) + { + return DefaultRequestContext; + } + + return new RequestContext() { CancellationToken = cancellationToken }; + } + + private static ResponseClassifier _responseClassifier202; + private static ResponseClassifier ResponseClassifier202 => _responseClassifier202 ??= new StatusCodeClassifier(stackalloc ushort[] { 202 }); + private static ResponseClassifier _responseClassifier200; + private static ResponseClassifier ResponseClassifier200 => _responseClassifier200 ??= new StatusCodeClassifier(stackalloc ushort[] { 200 }); + + private SessionCodeExecutionResult FetchSessionCodeExecutionResultFromSessionCodeExecutionResource(Response response) + { + var resultJsonElement = JsonDocument.Parse(response.Content).RootElement.GetProperty("result"); + return SessionCodeExecutionResult.DeserializeSessionCodeExecutionResult(resultJsonElement); + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/CodeInputType.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/CodeInputType.cs new file mode 100644 index 000000000000..6d931a411fcf --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/CodeInputType.cs @@ -0,0 +1,54 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace Microsoft.App.DynamicSessions +{ + /// Code input type. + public readonly partial struct CodeInputType : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public CodeInputType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string InlineValue = "Inline"; + private const string InlineBase64Value = "InlineBase64"; + private const string InlineTextValue = "InlineText"; + + /// Inline. + public static CodeInputType Inline { get; } = new CodeInputType(InlineValue); + /// InlineBase64. + public static CodeInputType InlineBase64 { get; } = new CodeInputType(InlineBase64Value); + /// InlineText. + public static CodeInputType InlineText { get; } = new CodeInputType(InlineTextValue); + /// Determines if two values are the same. + public static bool operator ==(CodeInputType left, CodeInputType right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(CodeInputType left, CodeInputType right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator CodeInputType(string value) => new CodeInputType(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is CodeInputType other && Equals(other); + /// + public bool Equals(CodeInputType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + /// + public override string ToString() => _value; + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Docs/CodeExecution.xml b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Docs/CodeExecution.xml new file mode 100644 index 000000000000..1f7cf7d6e2b1 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Docs/CodeExecution.xml @@ -0,0 +1,291 @@ + + + + + +This sample shows how to call GetSessionCodeExecutionResourceAsync. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +Response response = await client.GetSessionCodeExecutionResourceAsync("testExecutionId", "testSessionIdentifier"); +]]> +This sample shows how to call GetSessionCodeExecutionResourceAsync. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +Response response = await client.GetSessionCodeExecutionResourceAsync("testExecutionId", "testSessionIdentifier"); +]]> + + + +This sample shows how to call GetSessionCodeExecutionResource. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +Response response = client.GetSessionCodeExecutionResource("testExecutionId", "testSessionIdentifier"); +]]> +This sample shows how to call GetSessionCodeExecutionResource. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +Response response = client.GetSessionCodeExecutionResource("testExecutionId", "testSessionIdentifier"); +]]> + + + +This sample shows how to call GetSessionCodeExecutionResourceAsync and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +Response response = await client.GetSessionCodeExecutionResourceAsync("testExecutionId", "testSessionIdentifier", null); + +JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; +Console.WriteLine(result.GetProperty("id").ToString()); +Console.WriteLine(result.GetProperty("identifier").ToString()); +Console.WriteLine(result.GetProperty("executionType").ToString()); +Console.WriteLine(result.GetProperty("status").ToString()); +]]> +This sample shows how to call GetSessionCodeExecutionResourceAsync and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +Response response = await client.GetSessionCodeExecutionResourceAsync("testExecutionId", "testSessionIdentifier", null); + +JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; +Console.WriteLine(result.GetProperty("id").ToString()); +Console.WriteLine(result.GetProperty("identifier").ToString()); +Console.WriteLine(result.GetProperty("executionType").ToString()); +Console.WriteLine(result.GetProperty("status").ToString()); +]]> + + + +This sample shows how to call GetSessionCodeExecutionResource and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +Response response = client.GetSessionCodeExecutionResource("testExecutionId", "testSessionIdentifier", null); + +JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; +Console.WriteLine(result.GetProperty("id").ToString()); +Console.WriteLine(result.GetProperty("identifier").ToString()); +Console.WriteLine(result.GetProperty("executionType").ToString()); +Console.WriteLine(result.GetProperty("status").ToString()); +]]> +This sample shows how to call GetSessionCodeExecutionResource and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +Response response = client.GetSessionCodeExecutionResource("testExecutionId", "testSessionIdentifier", null); + +JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; +Console.WriteLine(result.GetProperty("id").ToString()); +Console.WriteLine(result.GetProperty("identifier").ToString()); +Console.WriteLine(result.GetProperty("executionType").ToString()); +Console.WriteLine(result.GetProperty("status").ToString()); +]]> + + + +This sample shows how to call ExecuteAsync. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +SessionCodeExecutionRequest codeExecutionRequest = new SessionCodeExecutionRequest(CodeInputType.Inline, ExecutionType.Asynchronous, "print(7*9)", 60L); +Operation operation = await client.ExecuteAsync(WaitUntil.Completed, "testSessionIdentifier", codeExecutionRequest); +SessionCodeExecutionResult responseData = operation.Value; +]]> +This sample shows how to call ExecuteAsync. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +SessionCodeExecutionRequest codeExecutionRequest = new SessionCodeExecutionRequest(CodeInputType.Inline, ExecutionType.Asynchronous, "print(7*9)", 60L); +Operation operation = await client.ExecuteAsync(WaitUntil.Completed, "testSessionIdentifier", codeExecutionRequest); +SessionCodeExecutionResult responseData = operation.Value; +]]> +This sample shows how to call ExecuteAsync. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +SessionCodeExecutionRequest codeExecutionRequest = new SessionCodeExecutionRequest(CodeInputType.Inline, ExecutionType.Synchronous, "print(7*9)", 60L); +Operation operation = await client.ExecuteAsync(WaitUntil.Completed, "testSessionIdentifier", codeExecutionRequest); +SessionCodeExecutionResult responseData = operation.Value; +]]> + + + +This sample shows how to call Execute. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +SessionCodeExecutionRequest codeExecutionRequest = new SessionCodeExecutionRequest(CodeInputType.Inline, ExecutionType.Asynchronous, "print(7*9)", 60L); +Operation operation = client.Execute(WaitUntil.Completed, "testSessionIdentifier", codeExecutionRequest); +SessionCodeExecutionResult responseData = operation.Value; +]]> +This sample shows how to call Execute. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +SessionCodeExecutionRequest codeExecutionRequest = new SessionCodeExecutionRequest(CodeInputType.Inline, ExecutionType.Asynchronous, "print(7*9)", 60L); +Operation operation = client.Execute(WaitUntil.Completed, "testSessionIdentifier", codeExecutionRequest); +SessionCodeExecutionResult responseData = operation.Value; +]]> +This sample shows how to call Execute. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +SessionCodeExecutionRequest codeExecutionRequest = new SessionCodeExecutionRequest(CodeInputType.Inline, ExecutionType.Synchronous, "print(7*9)", 60L); +Operation operation = client.Execute(WaitUntil.Completed, "testSessionIdentifier", codeExecutionRequest); +SessionCodeExecutionResult responseData = operation.Value; +]]> + + + +This sample shows how to call ExecuteAsync and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +using RequestContent content = RequestContent.Create(new +{ + codeInputType = "Inline", + executionType = "Asynchronous", + code = "print(7*9)", + timeoutInSeconds = 60L, +}); +Operation operation = await client.ExecuteAsync(WaitUntil.Completed, "testSessionIdentifier", content); +BinaryData responseData = operation.Value; + +JsonElement result = JsonDocument.Parse(responseData.ToStream()).RootElement; +Console.WriteLine(result.ToString()); +]]> +This sample shows how to call ExecuteAsync and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +using RequestContent content = RequestContent.Create(new +{ + codeInputType = "Inline", + executionType = "Asynchronous", + code = "print(7*9)", + timeoutInSeconds = 60L, +}); +Operation operation = await client.ExecuteAsync(WaitUntil.Completed, "testSessionIdentifier", content); +BinaryData responseData = operation.Value; + +JsonElement result = JsonDocument.Parse(responseData.ToStream()).RootElement; +Console.WriteLine(result.ToString()); +]]> +This sample shows how to call ExecuteAsync and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +using RequestContent content = RequestContent.Create(new +{ + codeInputType = "Inline", + executionType = "Synchronous", + code = "print(7*9)", + timeoutInSeconds = 60L, +}); +Operation operation = await client.ExecuteAsync(WaitUntil.Completed, "testSessionIdentifier", content); +BinaryData responseData = operation.Value; + +JsonElement result = JsonDocument.Parse(responseData.ToStream()).RootElement; +Console.WriteLine(result.ToString()); +]]> + + + +This sample shows how to call Execute and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +using RequestContent content = RequestContent.Create(new +{ + codeInputType = "Inline", + executionType = "Asynchronous", + code = "print(7*9)", + timeoutInSeconds = 60L, +}); +Operation operation = client.Execute(WaitUntil.Completed, "testSessionIdentifier", content); +BinaryData responseData = operation.Value; + +JsonElement result = JsonDocument.Parse(responseData.ToStream()).RootElement; +Console.WriteLine(result.ToString()); +]]> +This sample shows how to call Execute and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +using RequestContent content = RequestContent.Create(new +{ + codeInputType = "Inline", + executionType = "Asynchronous", + code = "print(7*9)", + timeoutInSeconds = 60L, +}); +Operation operation = client.Execute(WaitUntil.Completed, "testSessionIdentifier", content); +BinaryData responseData = operation.Value; + +JsonElement result = JsonDocument.Parse(responseData.ToStream()).RootElement; +Console.WriteLine(result.ToString()); +]]> +This sample shows how to call Execute and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + +using RequestContent content = RequestContent.Create(new +{ + codeInputType = "Inline", + executionType = "Synchronous", + code = "print(7*9)", + timeoutInSeconds = 60L, +}); +Operation operation = client.Execute(WaitUntil.Completed, "testSessionIdentifier", content); +BinaryData responseData = operation.Value; + +JsonElement result = JsonDocument.Parse(responseData.ToStream()).RootElement; +Console.WriteLine(result.ToString()); +]]> + + + \ No newline at end of file diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Docs/SessionResourceFiles.xml b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Docs/SessionResourceFiles.xml new file mode 100644 index 000000000000..b756e760389f --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Docs/SessionResourceFiles.xml @@ -0,0 +1,253 @@ + + + + + +This sample shows how to call GetSessionResourceFileAsync. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +Response response = await client.GetSessionResourceFileAsync("testfile", "testSessionIdentifier"); +]]> + + + +This sample shows how to call GetSessionResourceFile. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +Response response = client.GetSessionResourceFile("testfile", "testSessionIdentifier"); +]]> + + + +This sample shows how to call GetSessionResourceFileAsync and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +Response response = await client.GetSessionResourceFileAsync("testfile", "testSessionIdentifier", "/", null); + +JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; +Console.WriteLine(result.GetProperty("name").ToString()); +Console.WriteLine(result.GetProperty("type").ToString()); +Console.WriteLine(result.GetProperty("lastModifiedAt").ToString()); +]]> + + + +This sample shows how to call GetSessionResourceFile and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +Response response = client.GetSessionResourceFile("testfile", "testSessionIdentifier", "/", null); + +JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; +Console.WriteLine(result.GetProperty("name").ToString()); +Console.WriteLine(result.GetProperty("type").ToString()); +Console.WriteLine(result.GetProperty("lastModifiedAt").ToString()); +]]> + + + +This sample shows how to call DeleteAsync. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +Response response = await client.DeleteAsync("testfile", "testSessionIdentifier"); + +Console.WriteLine(response.Status); +]]> + + + +This sample shows how to call Delete. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +Response response = client.Delete("testfile", "testSessionIdentifier"); + +Console.WriteLine(response.Status); +]]> + + + +This sample shows how to call UploadAsync. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +UploadRequest body = null; +Response response = await client.UploadAsync("testSessionIdentifier", body); +]]> + + + +This sample shows how to call Upload. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +UploadRequest body = null; +Response response = client.Upload("testSessionIdentifier", body); +]]> + + + +This sample shows how to call UploadAsync and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +using RequestContent content = null; +Response response = await client.UploadAsync("testSessionIdentifier", content, null); + +JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; +Console.WriteLine(result.GetProperty("name").ToString()); +Console.WriteLine(result.GetProperty("type").ToString()); +Console.WriteLine(result.GetProperty("lastModifiedAt").ToString()); +]]> + + + +This sample shows how to call Upload and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +using RequestContent content = null; +Response response = client.Upload("testSessionIdentifier", content, null); + +JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; +Console.WriteLine(result.GetProperty("name").ToString()); +Console.WriteLine(result.GetProperty("type").ToString()); +Console.WriteLine(result.GetProperty("lastModifiedAt").ToString()); +]]> + + + +This sample shows how to call GetContentAsync. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +Response response = await client.GetContentAsync("testfile", "testSessionIdentifier"); +]]> + + + +This sample shows how to call GetContent. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +Response response = client.GetContent("testfile", "testSessionIdentifier"); +]]> + + + +This sample shows how to call GetContentAsync and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +Response response = await client.GetContentAsync("testfile", "testSessionIdentifier", "/", null); + +JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; +Console.WriteLine(result.ToString()); +]]> + + + +This sample shows how to call GetContent and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +Response response = client.GetContent("testfile", "testSessionIdentifier", "/", null); + +JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; +Console.WriteLine(result.ToString()); +]]> + + + +This sample shows how to call GetSessionResourceFilesAsync. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +await foreach (SessionResourceFile item in client.GetSessionResourceFilesAsync("testSessionIdentifier")) +{ +} +]]> + + + +This sample shows how to call GetSessionResourceFiles. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +foreach (SessionResourceFile item in client.GetSessionResourceFiles("testSessionIdentifier")) +{ +} +]]> + + + +This sample shows how to call GetSessionResourceFilesAsync and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +await foreach (BinaryData item in client.GetSessionResourceFilesAsync("testSessionIdentifier", "/", null)) +{ + JsonElement result = JsonDocument.Parse(item.ToStream()).RootElement; + Console.WriteLine(result.GetProperty("name").ToString()); + Console.WriteLine(result.GetProperty("type").ToString()); + Console.WriteLine(result.GetProperty("lastModifiedAt").ToString()); +} +]]> + + + +This sample shows how to call GetSessionResourceFiles and parse the result. +"); +TokenCredential credential = new DefaultAzureCredential(); +SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + +foreach (BinaryData item in client.GetSessionResourceFiles("testSessionIdentifier", "/", null)) +{ + JsonElement result = JsonDocument.Parse(item.ToStream()).RootElement; + Console.WriteLine(result.GetProperty("name").ToString()); + Console.WriteLine(result.GetProperty("type").ToString()); + Console.WriteLine(result.GetProperty("lastModifiedAt").ToString()); +} +]]> + + + \ No newline at end of file diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/DynamicSessionsClient.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/DynamicSessionsClient.cs new file mode 100644 index 000000000000..c6ea990624a9 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/DynamicSessionsClient.cs @@ -0,0 +1,79 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Microsoft.App.DynamicSessions +{ + // Data plane generated client. + /// The DynamicSessions service client. + public partial class DynamicSessionsClient + { + private static readonly string[] AuthorizationScopes = new string[] { "https://dynamicsessions.io/.default" }; + private readonly TokenCredential _tokenCredential; + private readonly HttpPipeline _pipeline; + private readonly Uri _endpoint; + + /// The ClientDiagnostics is used to provide tracing support for the client library. + internal ClientDiagnostics ClientDiagnostics { get; } + + /// The HTTP pipeline for sending and receiving REST requests and responses. + public virtual HttpPipeline Pipeline => _pipeline; + + /// Initializes a new instance of DynamicSessionsClient for mocking. + protected DynamicSessionsClient() + { + } + + /// Initializes a new instance of DynamicSessionsClient. + /// The management endpoint of the session pool. + /// A credential used to authenticate to an Azure Service. + /// or is null. + public DynamicSessionsClient(Uri endpoint, TokenCredential credential) : this(endpoint, credential, new DynamicSessionsClientOptions()) + { + } + + /// Initializes a new instance of DynamicSessionsClient. + /// The management endpoint of the session pool. + /// A credential used to authenticate to an Azure Service. + /// The options for configuring the client. + /// or is null. + public DynamicSessionsClient(Uri endpoint, TokenCredential credential, DynamicSessionsClientOptions options) + { + Argument.AssertNotNull(endpoint, nameof(endpoint)); + Argument.AssertNotNull(credential, nameof(credential)); + options ??= new DynamicSessionsClientOptions(); + + ClientDiagnostics = new ClientDiagnostics(options, true); + _tokenCredential = credential; + _pipeline = HttpPipelineBuilder.Build(options, Array.Empty(), new HttpPipelinePolicy[] { new BearerTokenAuthenticationPolicy(_tokenCredential, AuthorizationScopes) }, new ResponseClassifier()); + _endpoint = endpoint; + } + + /// Initializes a new instance of CodeExecution. + /// The API version to use for this operation. + /// is null. + public virtual CodeExecution GetCodeExecutionClient(string apiVersion = "2024-10-02-preview") + { + Argument.AssertNotNull(apiVersion, nameof(apiVersion)); + + return new CodeExecution(ClientDiagnostics, _pipeline, _tokenCredential, _endpoint, apiVersion); + } + + /// Initializes a new instance of SessionResourceFiles. + /// The API version to use for this operation. + /// is null. + public virtual SessionResourceFiles GetSessionResourceFilesClient(string apiVersion = "2024-10-02-preview") + { + Argument.AssertNotNull(apiVersion, nameof(apiVersion)); + + return new SessionResourceFiles(ClientDiagnostics, _pipeline, _tokenCredential, _endpoint, apiVersion); + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/DynamicSessionsClientOptions.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/DynamicSessionsClientOptions.cs new file mode 100644 index 000000000000..31ad50ae5345 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/DynamicSessionsClientOptions.cs @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure.Core; + +namespace Microsoft.App.DynamicSessions +{ + /// Client options for DynamicSessionsClient. + public partial class DynamicSessionsClientOptions : ClientOptions + { + private const ServiceVersion LatestVersion = ServiceVersion.V2024_10_02_Preview; + + /// The version of the service to use. + public enum ServiceVersion + { + /// Service version "2024-10-02-preview". + V2024_10_02_Preview = 1, + } + + internal string Version { get; } + + /// Initializes new instance of DynamicSessionsClientOptions. + public DynamicSessionsClientOptions(ServiceVersion version = LatestVersion) + { + Version = version switch + { + ServiceVersion.V2024_10_02_Preview => "2024-10-02-preview", + _ => throw new NotSupportedException() + }; + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/ErrorResponse.Serialization.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/ErrorResponse.Serialization.cs new file mode 100644 index 000000000000..ba226423834c --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/ErrorResponse.Serialization.cs @@ -0,0 +1,143 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace Microsoft.App.DynamicSessions +{ + public partial class ErrorResponse : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ErrorResponse)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("error"u8); + JsonSerializer.Serialize(writer, Error); + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + ErrorResponse IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ErrorResponse)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeErrorResponse(document.RootElement, options); + } + + internal static ErrorResponse DeserializeErrorResponse(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResponseError error = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("error"u8)) + { + error = JsonSerializer.Deserialize(property.Value.GetRawText()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ErrorResponse(error, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(ErrorResponse)} does not support writing '{options.Format}' format."); + } + } + + ErrorResponse IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeErrorResponse(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ErrorResponse)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static ErrorResponse FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeErrorResponse(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/ErrorResponse.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/ErrorResponse.cs new file mode 100644 index 000000000000..365411fe4646 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/ErrorResponse.cs @@ -0,0 +1,76 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; + +namespace Microsoft.App.DynamicSessions +{ + /// A response containing error details. + public partial class ErrorResponse + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// The error object. + /// is null. + internal ErrorResponse(ResponseError error) + { + Argument.AssertNotNull(error, nameof(error)); + + Error = error; + } + + /// Initializes a new instance of . + /// The error object. + /// Keeps track of any properties unknown to the library. + internal ErrorResponse(ResponseError error, IDictionary serializedAdditionalRawData) + { + Error = error; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal ErrorResponse() + { + } + + /// The error object. + public ResponseError Error { get; } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/ExecutionType.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/ExecutionType.cs new file mode 100644 index 000000000000..8a5b0220c472 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/ExecutionType.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace Microsoft.App.DynamicSessions +{ + /// Execution Type. + public readonly partial struct ExecutionType : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public ExecutionType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string SynchronousValue = "Synchronous"; + private const string AsynchronousValue = "Asynchronous"; + + /// Synchronous. + public static ExecutionType Synchronous { get; } = new ExecutionType(SynchronousValue); + /// Asynchronous. + public static ExecutionType Asynchronous { get; } = new ExecutionType(AsynchronousValue); + /// Determines if two values are the same. + public static bool operator ==(ExecutionType left, ExecutionType right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(ExecutionType left, ExecutionType right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator ExecutionType(string value) => new ExecutionType(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ExecutionType other && Equals(other); + /// + public bool Equals(ExecutionType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + /// + public override string ToString() => _value; + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/Argument.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/Argument.cs new file mode 100644 index 000000000000..b29962ac493f --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/Argument.cs @@ -0,0 +1,129 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.App.DynamicSessions +{ + internal static class Argument + { + public static void AssertNotNull(T value, string name) + { + if (value is null) + { + throw new ArgumentNullException(name); + } + } + + public static void AssertNotNull(T? value, string name) + where T : struct + { + if (!value.HasValue) + { + throw new ArgumentNullException(name); + } + } + + public static void AssertNotNullOrEmpty(IEnumerable value, string name) + { + if (value is null) + { + throw new ArgumentNullException(name); + } + if (value is ICollection collectionOfT && collectionOfT.Count == 0) + { + throw new ArgumentException("Value cannot be an empty collection.", name); + } + if (value is ICollection collection && collection.Count == 0) + { + throw new ArgumentException("Value cannot be an empty collection.", name); + } + using IEnumerator e = value.GetEnumerator(); + if (!e.MoveNext()) + { + throw new ArgumentException("Value cannot be an empty collection.", name); + } + } + + public static void AssertNotNullOrEmpty(string value, string name) + { + if (value is null) + { + throw new ArgumentNullException(name); + } + if (value.Length == 0) + { + throw new ArgumentException("Value cannot be an empty string.", name); + } + } + + public static void AssertNotNullOrWhiteSpace(string value, string name) + { + if (value is null) + { + throw new ArgumentNullException(name); + } + if (string.IsNullOrWhiteSpace(value)) + { + throw new ArgumentException("Value cannot be empty or contain only white-space characters.", name); + } + } + + public static void AssertNotDefault(ref T value, string name) + where T : struct, IEquatable + { + if (value.Equals(default)) + { + throw new ArgumentException("Value cannot be empty.", name); + } + } + + public static void AssertInRange(T value, T minimum, T maximum, string name) + where T : notnull, IComparable + { + if (minimum.CompareTo(value) > 0) + { + throw new ArgumentOutOfRangeException(name, "Value is less than the minimum allowed."); + } + if (maximum.CompareTo(value) < 0) + { + throw new ArgumentOutOfRangeException(name, "Value is greater than the maximum allowed."); + } + } + + public static void AssertEnumDefined(Type enumType, object value, string name) + { + if (!Enum.IsDefined(enumType, value)) + { + throw new ArgumentException($"Value not defined for {enumType.FullName}.", name); + } + } + + public static T CheckNotNull(T value, string name) + where T : class + { + AssertNotNull(value, name); + return value; + } + + public static string CheckNotNullOrEmpty(string value, string name) + { + AssertNotNullOrEmpty(value, name); + return value; + } + + public static void AssertNull(T value, string name, string message = null) + { + if (value != null) + { + throw new ArgumentException(message ?? "Value must be null.", name); + } + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/ChangeTrackingDictionary.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/ChangeTrackingDictionary.cs new file mode 100644 index 000000000000..2f625026ca9e --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/ChangeTrackingDictionary.cs @@ -0,0 +1,167 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.App.DynamicSessions +{ + internal class ChangeTrackingDictionary : IDictionary, IReadOnlyDictionary where TKey : notnull + { + private IDictionary _innerDictionary; + + public ChangeTrackingDictionary() + { + } + + public ChangeTrackingDictionary(IDictionary dictionary) + { + if (dictionary == null) + { + return; + } + _innerDictionary = new Dictionary(dictionary); + } + + public ChangeTrackingDictionary(IReadOnlyDictionary dictionary) + { + if (dictionary == null) + { + return; + } + _innerDictionary = new Dictionary(); + foreach (var pair in dictionary) + { + _innerDictionary.Add(pair); + } + } + + public bool IsUndefined => _innerDictionary == null; + + public int Count => IsUndefined ? 0 : EnsureDictionary().Count; + + public bool IsReadOnly => IsUndefined ? false : EnsureDictionary().IsReadOnly; + + public ICollection Keys => IsUndefined ? Array.Empty() : EnsureDictionary().Keys; + + public ICollection Values => IsUndefined ? Array.Empty() : EnsureDictionary().Values; + + public TValue this[TKey key] + { + get + { + if (IsUndefined) + { + throw new KeyNotFoundException(nameof(key)); + } + return EnsureDictionary()[key]; + } + set + { + EnsureDictionary()[key] = value; + } + } + + IEnumerable IReadOnlyDictionary.Keys => Keys; + + IEnumerable IReadOnlyDictionary.Values => Values; + + public IEnumerator> GetEnumerator() + { + if (IsUndefined) + { + IEnumerator> enumerateEmpty() + { + yield break; + } + return enumerateEmpty(); + } + return EnsureDictionary().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + public void Add(KeyValuePair item) + { + EnsureDictionary().Add(item); + } + + public void Clear() + { + EnsureDictionary().Clear(); + } + + public bool Contains(KeyValuePair item) + { + if (IsUndefined) + { + return false; + } + return EnsureDictionary().Contains(item); + } + + public void CopyTo(KeyValuePair[] array, int index) + { + if (IsUndefined) + { + return; + } + EnsureDictionary().CopyTo(array, index); + } + + public bool Remove(KeyValuePair item) + { + if (IsUndefined) + { + return false; + } + return EnsureDictionary().Remove(item); + } + + public void Add(TKey key, TValue value) + { + EnsureDictionary().Add(key, value); + } + + public bool ContainsKey(TKey key) + { + if (IsUndefined) + { + return false; + } + return EnsureDictionary().ContainsKey(key); + } + + public bool Remove(TKey key) + { + if (IsUndefined) + { + return false; + } + return EnsureDictionary().Remove(key); + } + + public bool TryGetValue(TKey key, out TValue value) + { + if (IsUndefined) + { + value = default; + return false; + } + return EnsureDictionary().TryGetValue(key, out value); + } + + public IDictionary EnsureDictionary() + { + return _innerDictionary ??= new Dictionary(); + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/ChangeTrackingList.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/ChangeTrackingList.cs new file mode 100644 index 000000000000..d9cfe9c47a7f --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/ChangeTrackingList.cs @@ -0,0 +1,153 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; + +namespace Microsoft.App.DynamicSessions +{ + internal class ChangeTrackingList : IList, IReadOnlyList + { + private IList _innerList; + + public ChangeTrackingList() + { + } + + public ChangeTrackingList(IList innerList) + { + if (innerList != null) + { + _innerList = innerList; + } + } + + public ChangeTrackingList(IReadOnlyList innerList) + { + if (innerList != null) + { + _innerList = innerList.ToList(); + } + } + + public bool IsUndefined => _innerList == null; + + public int Count => IsUndefined ? 0 : EnsureList().Count; + + public bool IsReadOnly => IsUndefined ? false : EnsureList().IsReadOnly; + + public T this[int index] + { + get + { + if (IsUndefined) + { + throw new ArgumentOutOfRangeException(nameof(index)); + } + return EnsureList()[index]; + } + set + { + if (IsUndefined) + { + throw new ArgumentOutOfRangeException(nameof(index)); + } + EnsureList()[index] = value; + } + } + + public void Reset() + { + _innerList = null; + } + + public IEnumerator GetEnumerator() + { + if (IsUndefined) + { + IEnumerator enumerateEmpty() + { + yield break; + } + return enumerateEmpty(); + } + return EnsureList().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + public void Add(T item) + { + EnsureList().Add(item); + } + + public void Clear() + { + EnsureList().Clear(); + } + + public bool Contains(T item) + { + if (IsUndefined) + { + return false; + } + return EnsureList().Contains(item); + } + + public void CopyTo(T[] array, int arrayIndex) + { + if (IsUndefined) + { + return; + } + EnsureList().CopyTo(array, arrayIndex); + } + + public bool Remove(T item) + { + if (IsUndefined) + { + return false; + } + return EnsureList().Remove(item); + } + + public int IndexOf(T item) + { + if (IsUndefined) + { + return -1; + } + return EnsureList().IndexOf(item); + } + + public void Insert(int index, T item) + { + EnsureList().Insert(index, item); + } + + public void RemoveAt(int index) + { + if (IsUndefined) + { + throw new ArgumentOutOfRangeException(nameof(index)); + } + EnsureList().RemoveAt(index); + } + + public IList EnsureList() + { + return _innerList ??= new List(); + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/ModelSerializationExtensions.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/ModelSerializationExtensions.cs new file mode 100644 index 000000000000..5c205ab87ff5 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/ModelSerializationExtensions.cs @@ -0,0 +1,399 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Diagnostics; +using System.Globalization; +using System.Text.Json; +using System.Xml; +using Azure.Core; + +namespace Microsoft.App.DynamicSessions +{ + internal static class ModelSerializationExtensions + { + internal static readonly JsonDocumentOptions JsonDocumentOptions = new JsonDocumentOptions { MaxDepth = 256 }; + internal static readonly ModelReaderWriterOptions WireOptions = new ModelReaderWriterOptions("W"); + + public static object GetObject(this JsonElement element) + { + switch (element.ValueKind) + { + case JsonValueKind.String: + return element.GetString(); + case JsonValueKind.Number: + if (element.TryGetInt32(out int intValue)) + { + return intValue; + } + if (element.TryGetInt64(out long longValue)) + { + return longValue; + } + return element.GetDouble(); + case JsonValueKind.True: + return true; + case JsonValueKind.False: + return false; + case JsonValueKind.Undefined: + case JsonValueKind.Null: + return null; + case JsonValueKind.Object: + var dictionary = new Dictionary(); + foreach (var jsonProperty in element.EnumerateObject()) + { + dictionary.Add(jsonProperty.Name, jsonProperty.Value.GetObject()); + } + return dictionary; + case JsonValueKind.Array: + var list = new List(); + foreach (var item in element.EnumerateArray()) + { + list.Add(item.GetObject()); + } + return list.ToArray(); + default: + throw new NotSupportedException($"Not supported value kind {element.ValueKind}"); + } + } + + public static byte[] GetBytesFromBase64(this JsonElement element, string format) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + + return format switch + { + "U" => TypeFormatters.FromBase64UrlString(element.GetRequiredString()), + "D" => element.GetBytesFromBase64(), + _ => throw new ArgumentException($"Format is not supported: '{format}'", nameof(format)) + }; + } + + public static DateTimeOffset GetDateTimeOffset(this JsonElement element, string format) => format switch + { + "U" when element.ValueKind == JsonValueKind.Number => DateTimeOffset.FromUnixTimeSeconds(element.GetInt64()), + _ => TypeFormatters.ParseDateTimeOffset(element.GetString(), format) + }; + + public static TimeSpan GetTimeSpan(this JsonElement element, string format) => TypeFormatters.ParseTimeSpan(element.GetString(), format); + + public static char GetChar(this JsonElement element) + { + if (element.ValueKind == JsonValueKind.String) + { + var text = element.GetString(); + if (text == null || text.Length != 1) + { + throw new NotSupportedException($"Cannot convert \"{text}\" to a char"); + } + return text[0]; + } + else + { + throw new NotSupportedException($"Cannot convert {element.ValueKind} to a char"); + } + } + + [Conditional("DEBUG")] + public static void ThrowNonNullablePropertyIsNull(this JsonProperty property) + { + throw new JsonException($"A property '{property.Name}' defined as non-nullable but received as null from the service. This exception only happens in DEBUG builds of the library and would be ignored in the release build"); + } + + public static string GetRequiredString(this JsonElement element) + { + var value = element.GetString(); + if (value == null) + { + throw new InvalidOperationException($"The requested operation requires an element of type 'String', but the target element has type '{element.ValueKind}'."); + } + return value; + } + + public static void WriteStringValue(this Utf8JsonWriter writer, DateTimeOffset value, string format) + { + writer.WriteStringValue(TypeFormatters.ToString(value, format)); + } + + public static void WriteStringValue(this Utf8JsonWriter writer, DateTime value, string format) + { + writer.WriteStringValue(TypeFormatters.ToString(value, format)); + } + + public static void WriteStringValue(this Utf8JsonWriter writer, TimeSpan value, string format) + { + writer.WriteStringValue(TypeFormatters.ToString(value, format)); + } + + public static void WriteStringValue(this Utf8JsonWriter writer, char value) + { + writer.WriteStringValue(value.ToString(CultureInfo.InvariantCulture)); + } + + public static void WriteBase64StringValue(this Utf8JsonWriter writer, byte[] value, string format) + { + if (value == null) + { + writer.WriteNullValue(); + return; + } + switch (format) + { + case "U": + writer.WriteStringValue(TypeFormatters.ToBase64UrlString(value)); + break; + case "D": + writer.WriteBase64StringValue(value); + break; + default: + throw new ArgumentException($"Format is not supported: '{format}'", nameof(format)); + } + } + + public static void WriteNumberValue(this Utf8JsonWriter writer, DateTimeOffset value, string format) + { + if (format != "U") + { + throw new ArgumentOutOfRangeException(nameof(format), "Only 'U' format is supported when writing a DateTimeOffset as a Number."); + } + writer.WriteNumberValue(value.ToUnixTimeSeconds()); + } + + public static void WriteObjectValue(this Utf8JsonWriter writer, T value, ModelReaderWriterOptions options = null) + { + switch (value) + { + case null: + writer.WriteNullValue(); + break; + case IJsonModel jsonModel: + jsonModel.Write(writer, options ?? WireOptions); + break; + case IUtf8JsonSerializable serializable: + serializable.Write(writer); + break; + case byte[] bytes: + writer.WriteBase64StringValue(bytes); + break; + case BinaryData bytes0: + writer.WriteBase64StringValue(bytes0); + break; + case JsonElement json: + json.WriteTo(writer); + break; + case int i: + writer.WriteNumberValue(i); + break; + case decimal d: + writer.WriteNumberValue(d); + break; + case double d0: + if (double.IsNaN(d0)) + { + writer.WriteStringValue("NaN"); + } + else + { + writer.WriteNumberValue(d0); + } + break; + case float f: + writer.WriteNumberValue(f); + break; + case long l: + writer.WriteNumberValue(l); + break; + case string s: + writer.WriteStringValue(s); + break; + case bool b: + writer.WriteBooleanValue(b); + break; + case Guid g: + writer.WriteStringValue(g); + break; + case DateTimeOffset dateTimeOffset: + writer.WriteStringValue(dateTimeOffset, "O"); + break; + case DateTime dateTime: + writer.WriteStringValue(dateTime, "O"); + break; + case IEnumerable> enumerable: + writer.WriteStartObject(); + foreach (var pair in enumerable) + { + writer.WritePropertyName(pair.Key); + writer.WriteObjectValue(pair.Value, options); + } + writer.WriteEndObject(); + break; + case IEnumerable objectEnumerable: + writer.WriteStartArray(); + foreach (var item in objectEnumerable) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + break; + case TimeSpan timeSpan: + writer.WriteStringValue(timeSpan, "P"); + break; + default: + throw new NotSupportedException($"Not supported type {value.GetType()}"); + } + } + + public static void WriteObjectValue(this Utf8JsonWriter writer, object value, ModelReaderWriterOptions options = null) + { + writer.WriteObjectValue(value, options); + } + + internal static class TypeFormatters + { + private const string RoundtripZFormat = "yyyy-MM-ddTHH:mm:ss.fffffffZ"; + public const string DefaultNumberFormat = "G"; + + public static string ToString(bool value) => value ? "true" : "false"; + + public static string ToString(DateTime value, string format) => value.Kind switch + { + DateTimeKind.Utc => ToString((DateTimeOffset)value, format), + _ => throw new NotSupportedException($"DateTime {value} has a Kind of {value.Kind}. Azure SDK requires it to be UTC. You can call DateTime.SpecifyKind to change Kind property value to DateTimeKind.Utc.") + }; + + public static string ToString(DateTimeOffset value, string format) => format switch + { + "D" => value.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture), + "U" => value.ToUnixTimeSeconds().ToString(CultureInfo.InvariantCulture), + "O" => value.ToUniversalTime().ToString(RoundtripZFormat, CultureInfo.InvariantCulture), + "o" => value.ToUniversalTime().ToString(RoundtripZFormat, CultureInfo.InvariantCulture), + "R" => value.ToString("r", CultureInfo.InvariantCulture), + _ => value.ToString(format, CultureInfo.InvariantCulture) + }; + + public static string ToString(TimeSpan value, string format) => format switch + { + "P" => XmlConvert.ToString(value), + _ => value.ToString(format, CultureInfo.InvariantCulture) + }; + + public static string ToString(byte[] value, string format) => format switch + { + "U" => ToBase64UrlString(value), + "D" => Convert.ToBase64String(value), + _ => throw new ArgumentException($"Format is not supported: '{format}'", nameof(format)) + }; + + public static string ToBase64UrlString(byte[] value) + { + int numWholeOrPartialInputBlocks = checked(value.Length + 2) / 3; + int size = checked(numWholeOrPartialInputBlocks * 4); + char[] output = new char[size]; + + int numBase64Chars = Convert.ToBase64CharArray(value, 0, value.Length, output, 0); + + int i = 0; + for (; i < numBase64Chars; i++) + { + char ch = output[i]; + if (ch == '+') + { + output[i] = '-'; + } + else + { + if (ch == '/') + { + output[i] = '_'; + } + else + { + if (ch == '=') + { + break; + } + } + } + } + + return new string(output, 0, i); + } + + public static byte[] FromBase64UrlString(string value) + { + int paddingCharsToAdd = (value.Length % 4) switch + { + 0 => 0, + 2 => 2, + 3 => 1, + _ => throw new InvalidOperationException("Malformed input") + }; + char[] output = new char[(value.Length + paddingCharsToAdd)]; + int i = 0; + for (; i < value.Length; i++) + { + char ch = value[i]; + if (ch == '-') + { + output[i] = '+'; + } + else + { + if (ch == '_') + { + output[i] = '/'; + } + else + { + output[i] = ch; + } + } + } + + for (; i < output.Length; i++) + { + output[i] = '='; + } + + return Convert.FromBase64CharArray(output, 0, output.Length); + } + + public static DateTimeOffset ParseDateTimeOffset(string value, string format) => format switch + { + "U" => DateTimeOffset.FromUnixTimeSeconds(long.Parse(value, CultureInfo.InvariantCulture)), + _ => DateTimeOffset.Parse(value, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal) + }; + + public static TimeSpan ParseTimeSpan(string value, string format) => format switch + { + "P" => XmlConvert.ToTimeSpan(value), + _ => TimeSpan.ParseExact(value, format, CultureInfo.InvariantCulture) + }; + + public static string ConvertToString(object value, string format = null) => value switch + { + null => "null", + string s => s, + bool b => ToString(b), + int or float or double or long or decimal => ((IFormattable)value).ToString(DefaultNumberFormat, CultureInfo.InvariantCulture), + byte[] b0 when format != null => ToString(b0, format), + IEnumerable s0 => string.Join(",", s0), + DateTimeOffset dateTime when format != null => ToString(dateTime, format), + TimeSpan timeSpan when format != null => ToString(timeSpan, format), + TimeSpan timeSpan0 => XmlConvert.ToString(timeSpan0), + Guid guid => guid.ToString(), + BinaryData binaryData => ConvertToString(binaryData.ToArray(), format), + _ => value.ToString() + }; + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/MultipartFormDataRequestContent.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/MultipartFormDataRequestContent.cs new file mode 100644 index 000000000000..e644801a470a --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/MultipartFormDataRequestContent.cs @@ -0,0 +1,203 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Globalization; +using System.IO; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Microsoft.App.DynamicSessions +{ + internal class MultipartFormDataRequestContent : RequestContent + { + private readonly System.Net.Http.MultipartFormDataContent _multipartContent; + private static readonly Random _random = new Random(); + private static readonly char[] _boundaryValues = "0123456789=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".ToCharArray(); + + public MultipartFormDataRequestContent() + { + _multipartContent = new System.Net.Http.MultipartFormDataContent(CreateBoundary()); + } + + public string ContentType + { + get + { + return _multipartContent.Headers.ContentType.ToString(); + } + } + + internal HttpContent HttpContent => _multipartContent; + + private static string CreateBoundary() + { + Span chars = new char[70]; + byte[] random = new byte[70]; + _random.NextBytes(random); + int mask = 255 >> 2; + for (int i = 0; i < 70; i++) + { + chars[i] = _boundaryValues[random[i] & mask]; + } + return chars.ToString(); + } + + public void Add(string content, string name, string filename = null, string contentType = null) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + Add(new StringContent(content), name, filename, contentType); + } + + public void Add(int content, string name, string filename = null, string contentType = null) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + string value = content.ToString("G", CultureInfo.InvariantCulture); + Add(new StringContent(value), name, filename, contentType); + } + + public void Add(long content, string name, string filename = null, string contentType = null) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + string value = content.ToString("G", CultureInfo.InvariantCulture); + Add(new StringContent(value), name, filename, contentType); + } + + public void Add(float content, string name, string filename = null, string contentType = null) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + string value = content.ToString("G", CultureInfo.InvariantCulture); + Add(new StringContent(value), name, filename, contentType); + } + + public void Add(double content, string name, string filename = null, string contentType = null) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + string value = content.ToString("G", CultureInfo.InvariantCulture); + Add(new StringContent(value), name, filename, contentType); + } + + public void Add(decimal content, string name, string filename = null, string contentType = null) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + string value = content.ToString("G", CultureInfo.InvariantCulture); + Add(new StringContent(value), name, filename, contentType); + } + + public void Add(bool content, string name, string filename = null, string contentType = null) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + string value = content ? "true" : "false"; + Add(new StringContent(value), name, filename, contentType); + } + + public void Add(Stream content, string name, string filename = null, string contentType = null) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + Add(new StreamContent(content), name, filename, contentType); + } + + public void Add(byte[] content, string name, string filename = null, string contentType = null) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + Add(new ByteArrayContent(content), name, filename, contentType); + } + + public void Add(BinaryData content, string name, string filename = null, string contentType = null) + { + Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(name, nameof(name)); + + Add(new ByteArrayContent(content.ToArray()), name, filename, contentType); + } + + private void Add(HttpContent content, string name, string filename, string contentType) + { + if (filename != null) + { + Argument.AssertNotNullOrEmpty(filename, nameof(filename)); + AddFilenameHeader(content, name, filename); + } + if (contentType != null) + { + Argument.AssertNotNullOrEmpty(contentType, nameof(contentType)); + AddContentTypeHeader(content, contentType); + } + _multipartContent.Add(content, name); + } + + public static void AddFilenameHeader(HttpContent content, string name, string filename) + { + ContentDispositionHeaderValue header = new ContentDispositionHeaderValue("form-data") { Name = name, FileName = filename }; + content.Headers.ContentDisposition = header; + } + + public static void AddContentTypeHeader(HttpContent content, string contentType) + { + MediaTypeHeaderValue header = new MediaTypeHeaderValue(contentType); + content.Headers.ContentType = header; + } + + public override bool TryComputeLength(out long length) + { + if (_multipartContent.Headers.ContentLength is long contentLength) + { + length = contentLength; + return true; + } + length = 0; + return false; + } + + public override void WriteTo(Stream stream, CancellationToken cancellationToken = default) + { +#if NET6_0_OR_GREATER + _multipartContent.CopyTo(stream, default, cancellationToken); +#else +#pragma warning disable AZC0107 + _multipartContent.CopyToAsync(stream).EnsureCompleted(); +#pragma warning restore AZC0107 +#endif + } + + public override async Task WriteToAsync(Stream stream, CancellationToken cancellationToken = default) + { +#if NET6_0_OR_GREATER + await _multipartContent.CopyToAsync(stream, cancellationToken).ConfigureAwait(false); +#else + await _multipartContent.CopyToAsync(stream).ConfigureAwait(false); +#endif + } + + public override void Dispose() + { + _multipartContent.Dispose(); + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/Optional.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/Optional.cs new file mode 100644 index 000000000000..e39a6bf9bdee --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/Optional.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Collections.Generic; +using System.Text.Json; + +namespace Microsoft.App.DynamicSessions +{ + internal static class Optional + { + public static bool IsCollectionDefined(IEnumerable collection) + { + return !(collection is ChangeTrackingList changeTrackingList && changeTrackingList.IsUndefined); + } + + public static bool IsCollectionDefined(IDictionary collection) + { + return !(collection is ChangeTrackingDictionary changeTrackingDictionary && changeTrackingDictionary.IsUndefined); + } + + public static bool IsCollectionDefined(IReadOnlyDictionary collection) + { + return !(collection is ChangeTrackingDictionary changeTrackingDictionary && changeTrackingDictionary.IsUndefined); + } + + public static bool IsDefined(T? value) + where T : struct + { + return value.HasValue; + } + + public static bool IsDefined(object value) + { + return value != null; + } + + public static bool IsDefined(JsonElement value) + { + return value.ValueKind != JsonValueKind.Undefined; + } + + public static bool IsDefined(string value) + { + return value != null; + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/Utf8JsonRequestContent.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/Utf8JsonRequestContent.cs new file mode 100644 index 000000000000..fa00656bf0f9 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/Internal/Utf8JsonRequestContent.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.IO; +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; + +namespace Microsoft.App.DynamicSessions +{ + internal class Utf8JsonRequestContent : RequestContent + { + private readonly MemoryStream _stream; + private readonly RequestContent _content; + + public Utf8JsonRequestContent() + { + _stream = new MemoryStream(); + _content = Create(_stream); + JsonWriter = new Utf8JsonWriter(_stream); + } + + public Utf8JsonWriter JsonWriter { get; } + + public override async Task WriteToAsync(Stream stream, CancellationToken cancellationToken = default) + { + await JsonWriter.FlushAsync().ConfigureAwait(false); + await _content.WriteToAsync(stream, cancellationToken).ConfigureAwait(false); + } + + public override void WriteTo(Stream stream, CancellationToken cancellationToken = default) + { + JsonWriter.Flush(); + _content.WriteTo(stream, cancellationToken); + } + + public override bool TryComputeLength(out long length) + { + length = JsonWriter.BytesCommitted + JsonWriter.BytesPending; + return true; + } + + public override void Dispose() + { + JsonWriter.Dispose(); + _content.Dispose(); + _stream.Dispose(); + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/MicrosoftAppDynamicSessionsClientBuilderExtensions.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/MicrosoftAppDynamicSessionsClientBuilderExtensions.cs new file mode 100644 index 000000000000..7ef784e1b0cb --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/MicrosoftAppDynamicSessionsClientBuilderExtensions.cs @@ -0,0 +1,35 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure.Core.Extensions; +using Microsoft.App.DynamicSessions; + +namespace Microsoft.Extensions.Azure +{ + /// Extension methods to add to client builder. + public static partial class MicrosoftAppDynamicSessionsClientBuilderExtensions + { + /// Registers a instance. + /// The builder to register with. + /// The management endpoint of the session pool. + public static IAzureClientBuilder AddDynamicSessionsClient(this TBuilder builder, Uri endpoint) + where TBuilder : IAzureClientFactoryBuilderWithCredential + { + return builder.RegisterClientFactory((options, cred) => new DynamicSessionsClient(endpoint, cred, options)); + } + + /// Registers a instance. + /// The builder to register with. + /// The configuration values. + public static IAzureClientBuilder AddDynamicSessionsClient(this TBuilder builder, TConfiguration configuration) + where TBuilder : IAzureClientFactoryBuilderWithConfiguration + { + return builder.RegisterClientFactory(configuration); + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/MicrosoftAppDynamicSessionsModelFactory.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/MicrosoftAppDynamicSessionsModelFactory.cs new file mode 100644 index 000000000000..9dde97cc16ee --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/MicrosoftAppDynamicSessionsModelFactory.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using Azure; + +namespace Microsoft.App.DynamicSessions +{ + /// Model factory for models. + public static partial class MicrosoftAppDynamicSessionsModelFactory + { + /// Initializes a new instance of . + /// The name of the file. + /// The type of the session resource file. + /// The type of the content of this file. + /// The size of the file. + /// The date time in RFC3339 format when the file was last modified. + /// A new instance for mocking. + public static SessionResourceFile SessionResourceFile(string name = null, string type = null, string contentType = null, long? sizeInBytes = null, DateTimeOffset lastModifiedAt = default) + { + return new SessionResourceFile( + name, + type, + contentType, + sizeInBytes, + lastModifiedAt, + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// Session code execution id. + /// The identifier of the session. + /// The execution type of the code execution request. + /// The status of the code execution operation, indicates whether succeeded or not. + /// The error of this code execution if failed. + /// The result of this code execution operation. + /// A new instance for mocking. + public static SessionCodeExecutionResource SessionCodeExecutionResource(string id = null, string identifier = null, ExecutionType executionType = default, OperationState status = default, ErrorResponse error = null, SessionCodeExecutionResult result = null) + { + return new SessionCodeExecutionResource( + id, + identifier, + executionType, + status, + error, + result, + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The error object. + /// A new instance for mocking. + public static ErrorResponse ErrorResponse(ResponseError error = null) + { + return new ErrorResponse(error, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The standard output of the code execution. + /// The standard error of the code execution. + /// The result of the code execution. The type of this field is same as the type of actual result of the code execution after being Json serialized. + /// The execution time of the code in milliseconds. + /// A new instance for mocking. + public static SessionCodeExecutionResult SessionCodeExecutionResult(string stdout = null, string stderr = null, BinaryData executionResult = null, long? executionTimeInMilliseconds = null) + { + return new SessionCodeExecutionResult(stdout, stderr, executionResult, executionTimeInMilliseconds, serializedAdditionalRawData: null); + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/OperationState.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/OperationState.cs new file mode 100644 index 000000000000..d2bcf46d8694 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/OperationState.cs @@ -0,0 +1,60 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace Microsoft.App.DynamicSessions +{ + /// Enum describing allowed operation states. + public readonly partial struct OperationState : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public OperationState(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string NotStartedValue = "NotStarted"; + private const string RunningValue = "Running"; + private const string SucceededValue = "Succeeded"; + private const string FailedValue = "Failed"; + private const string CanceledValue = "Canceled"; + + /// The operation has not started. + public static OperationState NotStarted { get; } = new OperationState(NotStartedValue); + /// The operation is in progress. + public static OperationState Running { get; } = new OperationState(RunningValue); + /// The operation has completed successfully. + public static OperationState Succeeded { get; } = new OperationState(SucceededValue); + /// The operation has failed. + public static OperationState Failed { get; } = new OperationState(FailedValue); + /// The operation has been canceled by the user. + public static OperationState Canceled { get; } = new OperationState(CanceledValue); + /// Determines if two values are the same. + public static bool operator ==(OperationState left, OperationState right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(OperationState left, OperationState right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator OperationState(string value) => new OperationState(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is OperationState other && Equals(other); + /// + public bool Equals(OperationState other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + /// + public override string ToString() => _value; + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionRequest.Serialization.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionRequest.Serialization.cs new file mode 100644 index 000000000000..f371b326529b --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionRequest.Serialization.cs @@ -0,0 +1,167 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace Microsoft.App.DynamicSessions +{ + public partial class SessionCodeExecutionRequest : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SessionCodeExecutionRequest)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("codeInputType"u8); + writer.WriteStringValue(CodeInputType.ToString()); + writer.WritePropertyName("executionType"u8); + writer.WriteStringValue(ExecutionType.ToString()); + writer.WritePropertyName("code"u8); + writer.WriteStringValue(Code); + writer.WritePropertyName("timeoutInSeconds"u8); + writer.WriteNumberValue(TimeoutInSeconds); + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + SessionCodeExecutionRequest IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SessionCodeExecutionRequest)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeSessionCodeExecutionRequest(document.RootElement, options); + } + + internal static SessionCodeExecutionRequest DeserializeSessionCodeExecutionRequest(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + CodeInputType codeInputType = default; + ExecutionType executionType = default; + string code = default; + long timeoutInSeconds = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("codeInputType"u8)) + { + codeInputType = new CodeInputType(property.Value.GetString()); + continue; + } + if (property.NameEquals("executionType"u8)) + { + executionType = new ExecutionType(property.Value.GetString()); + continue; + } + if (property.NameEquals("code"u8)) + { + code = property.Value.GetString(); + continue; + } + if (property.NameEquals("timeoutInSeconds"u8)) + { + timeoutInSeconds = property.Value.GetInt64(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new SessionCodeExecutionRequest(codeInputType, executionType, code, timeoutInSeconds, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(SessionCodeExecutionRequest)} does not support writing '{options.Format}' format."); + } + } + + SessionCodeExecutionRequest IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeSessionCodeExecutionRequest(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(SessionCodeExecutionRequest)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static SessionCodeExecutionRequest FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeSessionCodeExecutionRequest(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionRequest.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionRequest.cs new file mode 100644 index 000000000000..b6197c19e287 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionRequest.cs @@ -0,0 +1,93 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Microsoft.App.DynamicSessions +{ + /// The request to execute code. + public partial class SessionCodeExecutionRequest + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// The code input type of the code execution request. + /// The execution type of the code execution request. + /// The string of the code to execute, based on CodeInputType. + /// Code execution timeout in seconds. + /// is null. + public SessionCodeExecutionRequest(CodeInputType codeInputType, ExecutionType executionType, string code, long timeoutInSeconds) + { + Argument.AssertNotNull(code, nameof(code)); + + CodeInputType = codeInputType; + ExecutionType = executionType; + Code = code; + TimeoutInSeconds = timeoutInSeconds; + } + + /// Initializes a new instance of . + /// The code input type of the code execution request. + /// The execution type of the code execution request. + /// The string of the code to execute, based on CodeInputType. + /// Code execution timeout in seconds. + /// Keeps track of any properties unknown to the library. + internal SessionCodeExecutionRequest(CodeInputType codeInputType, ExecutionType executionType, string code, long timeoutInSeconds, IDictionary serializedAdditionalRawData) + { + CodeInputType = codeInputType; + ExecutionType = executionType; + Code = code; + TimeoutInSeconds = timeoutInSeconds; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal SessionCodeExecutionRequest() + { + } + + /// The code input type of the code execution request. + public CodeInputType CodeInputType { get; } + /// The execution type of the code execution request. + public ExecutionType ExecutionType { get; } + /// The string of the code to execute, based on CodeInputType. + public string Code { get; } + /// Code execution timeout in seconds. + public long TimeoutInSeconds { get; } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionResource.Serialization.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionResource.Serialization.cs new file mode 100644 index 000000000000..52ec4ca64384 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionResource.Serialization.cs @@ -0,0 +1,207 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace Microsoft.App.DynamicSessions +{ + public partial class SessionCodeExecutionResource : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SessionCodeExecutionResource)} does not support writing '{format}' format."); + } + + if (options.Format != "W") + { + writer.WritePropertyName("id"u8); + writer.WriteStringValue(Id); + } + writer.WritePropertyName("identifier"u8); + writer.WriteStringValue(Identifier); + writer.WritePropertyName("executionType"u8); + writer.WriteStringValue(ExecutionType.ToString()); + writer.WritePropertyName("status"u8); + writer.WriteStringValue(Status.ToString()); + if (Optional.IsDefined(Error)) + { + writer.WritePropertyName("error"u8); + writer.WriteObjectValue(Error, options); + } + if (Optional.IsDefined(Result)) + { + writer.WritePropertyName("result"u8); + writer.WriteObjectValue(Result, options); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + SessionCodeExecutionResource IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SessionCodeExecutionResource)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeSessionCodeExecutionResource(document.RootElement, options); + } + + internal static SessionCodeExecutionResource DeserializeSessionCodeExecutionResource(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string id = default; + string identifier = default; + ExecutionType executionType = default; + OperationState status = default; + ErrorResponse error = default; + SessionCodeExecutionResult result = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("id"u8)) + { + id = property.Value.GetString(); + continue; + } + if (property.NameEquals("identifier"u8)) + { + identifier = property.Value.GetString(); + continue; + } + if (property.NameEquals("executionType"u8)) + { + executionType = new ExecutionType(property.Value.GetString()); + continue; + } + if (property.NameEquals("status"u8)) + { + status = new OperationState(property.Value.GetString()); + continue; + } + if (property.NameEquals("error"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + error = ErrorResponse.DeserializeErrorResponse(property.Value, options); + continue; + } + if (property.NameEquals("result"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + result = SessionCodeExecutionResult.DeserializeSessionCodeExecutionResult(property.Value, options); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new SessionCodeExecutionResource( + id, + identifier, + executionType, + status, + error, + result, + serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(SessionCodeExecutionResource)} does not support writing '{options.Format}' format."); + } + } + + SessionCodeExecutionResource IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeSessionCodeExecutionResource(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(SessionCodeExecutionResource)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static SessionCodeExecutionResource FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeSessionCodeExecutionResource(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionResource.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionResource.cs new file mode 100644 index 000000000000..78ed209c1e62 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionResource.cs @@ -0,0 +1,99 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Microsoft.App.DynamicSessions +{ + /// The session code execution resource. + public partial class SessionCodeExecutionResource + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// The identifier of the session. + /// The execution type of the code execution request. + /// The status of the code execution operation, indicates whether succeeded or not. + /// is null. + internal SessionCodeExecutionResource(string identifier, ExecutionType executionType, OperationState status) + { + Argument.AssertNotNull(identifier, nameof(identifier)); + + Identifier = identifier; + ExecutionType = executionType; + Status = status; + } + + /// Initializes a new instance of . + /// Session code execution id. + /// The identifier of the session. + /// The execution type of the code execution request. + /// The status of the code execution operation, indicates whether succeeded or not. + /// The error of this code execution if failed. + /// The result of this code execution operation. + /// Keeps track of any properties unknown to the library. + internal SessionCodeExecutionResource(string id, string identifier, ExecutionType executionType, OperationState status, ErrorResponse error, SessionCodeExecutionResult result, IDictionary serializedAdditionalRawData) + { + Id = id; + Identifier = identifier; + ExecutionType = executionType; + Status = status; + Error = error; + Result = result; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal SessionCodeExecutionResource() + { + } + + /// Session code execution id. + public string Id { get; } + /// The identifier of the session. + public string Identifier { get; } + /// The execution type of the code execution request. + public ExecutionType ExecutionType { get; } + /// The status of the code execution operation, indicates whether succeeded or not. + public OperationState Status { get; } + /// The error of this code execution if failed. + public ErrorResponse Error { get; } + /// The result of this code execution operation. + public SessionCodeExecutionResult Result { get; } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionResult.Serialization.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionResult.Serialization.cs new file mode 100644 index 000000000000..87bb5de51244 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionResult.Serialization.cs @@ -0,0 +1,194 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace Microsoft.App.DynamicSessions +{ + public partial class SessionCodeExecutionResult : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SessionCodeExecutionResult)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(Stdout)) + { + writer.WritePropertyName("stdout"u8); + writer.WriteStringValue(Stdout); + } + if (Optional.IsDefined(Stderr)) + { + writer.WritePropertyName("stderr"u8); + writer.WriteStringValue(Stderr); + } + if (Optional.IsDefined(ExecutionResult)) + { + writer.WritePropertyName("executionResult"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(ExecutionResult); +#else + using (JsonDocument document = JsonDocument.Parse(ExecutionResult, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + if (Optional.IsDefined(ExecutionTimeInMilliseconds)) + { + writer.WritePropertyName("executionTimeInMilliseconds"u8); + writer.WriteNumberValue(ExecutionTimeInMilliseconds.Value); + } + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + SessionCodeExecutionResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SessionCodeExecutionResult)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeSessionCodeExecutionResult(document.RootElement, options); + } + + internal static SessionCodeExecutionResult DeserializeSessionCodeExecutionResult(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string stdout = default; + string stderr = default; + BinaryData executionResult = default; + long? executionTimeInMilliseconds = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("stdout"u8)) + { + stdout = property.Value.GetString(); + continue; + } + if (property.NameEquals("stderr"u8)) + { + stderr = property.Value.GetString(); + continue; + } + if (property.NameEquals("executionResult"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + executionResult = BinaryData.FromString(property.Value.GetRawText()); + continue; + } + if (property.NameEquals("executionTimeInMilliseconds"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + executionTimeInMilliseconds = property.Value.GetInt64(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new SessionCodeExecutionResult(stdout, stderr, executionResult, executionTimeInMilliseconds, serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(SessionCodeExecutionResult)} does not support writing '{options.Format}' format."); + } + } + + SessionCodeExecutionResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeSessionCodeExecutionResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(SessionCodeExecutionResult)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static SessionCodeExecutionResult FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeSessionCodeExecutionResult(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionResult.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionResult.cs new file mode 100644 index 000000000000..56244e575e1d --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionCodeExecutionResult.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Microsoft.App.DynamicSessions +{ + /// The result of the code execution. + public partial class SessionCodeExecutionResult + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + internal SessionCodeExecutionResult() + { + } + + /// Initializes a new instance of . + /// The standard output of the code execution. + /// The standard error of the code execution. + /// The result of the code execution. The type of this field is same as the type of actual result of the code execution after being Json serialized. + /// The execution time of the code in milliseconds. + /// Keeps track of any properties unknown to the library. + internal SessionCodeExecutionResult(string stdout, string stderr, BinaryData executionResult, long? executionTimeInMilliseconds, IDictionary serializedAdditionalRawData) + { + Stdout = stdout; + Stderr = stderr; + ExecutionResult = executionResult; + ExecutionTimeInMilliseconds = executionTimeInMilliseconds; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The standard output of the code execution. + public string Stdout { get; } + /// The standard error of the code execution. + public string Stderr { get; } + /// + /// The result of the code execution. The type of this field is same as the type of actual result of the code execution after being Json serialized. + /// + /// To assign an object to this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + public BinaryData ExecutionResult { get; } + /// The execution time of the code in milliseconds. + public long? ExecutionTimeInMilliseconds { get; } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionResourceFile.Serialization.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionResourceFile.Serialization.cs new file mode 100644 index 000000000000..a2c681e9d404 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionResourceFile.Serialization.cs @@ -0,0 +1,191 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace Microsoft.App.DynamicSessions +{ + public partial class SessionResourceFile : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SessionResourceFile)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type); + if (Optional.IsDefined(ContentType)) + { + writer.WritePropertyName("contentType"u8); + writer.WriteStringValue(ContentType); + } + if (Optional.IsDefined(SizeInBytes)) + { + writer.WritePropertyName("sizeInBytes"u8); + writer.WriteNumberValue(SizeInBytes.Value); + } + writer.WritePropertyName("lastModifiedAt"u8); + writer.WriteStringValue(LastModifiedAt, "O"); + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + SessionResourceFile IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SessionResourceFile)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeSessionResourceFile(document.RootElement, options); + } + + internal static SessionResourceFile DeserializeSessionResourceFile(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string name = default; + string type = default; + string contentType = default; + long? sizeInBytes = default; + DateTimeOffset lastModifiedAt = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("name"u8)) + { + name = property.Value.GetString(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (property.NameEquals("contentType"u8)) + { + contentType = property.Value.GetString(); + continue; + } + if (property.NameEquals("sizeInBytes"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + sizeInBytes = property.Value.GetInt64(); + continue; + } + if (property.NameEquals("lastModifiedAt"u8)) + { + lastModifiedAt = property.Value.GetDateTimeOffset("O"); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new SessionResourceFile( + name, + type, + contentType, + sizeInBytes, + lastModifiedAt, + serializedAdditionalRawData); + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + default: + throw new FormatException($"The model {nameof(SessionResourceFile)} does not support writing '{options.Format}' format."); + } + } + + SessionResourceFile IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeSessionResourceFile(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(SessionResourceFile)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static SessionResourceFile FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeSessionResourceFile(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionResourceFile.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionResourceFile.cs new file mode 100644 index 000000000000..5438b780714c --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionResourceFile.cs @@ -0,0 +1,96 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Microsoft.App.DynamicSessions +{ + /// Code execution file resource. + public partial class SessionResourceFile + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// The name of the file. + /// The type of the session resource file. + /// The date time in RFC3339 format when the file was last modified. + /// or is null. + internal SessionResourceFile(string name, string type, DateTimeOffset lastModifiedAt) + { + Argument.AssertNotNull(name, nameof(name)); + Argument.AssertNotNull(type, nameof(type)); + + Name = name; + Type = type; + LastModifiedAt = lastModifiedAt; + } + + /// Initializes a new instance of . + /// The name of the file. + /// The type of the session resource file. + /// The type of the content of this file. + /// The size of the file. + /// The date time in RFC3339 format when the file was last modified. + /// Keeps track of any properties unknown to the library. + internal SessionResourceFile(string name, string type, string contentType, long? sizeInBytes, DateTimeOffset lastModifiedAt, IDictionary serializedAdditionalRawData) + { + Name = name; + Type = type; + ContentType = contentType; + SizeInBytes = sizeInBytes; + LastModifiedAt = lastModifiedAt; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal SessionResourceFile() + { + } + + /// The name of the file. + public string Name { get; } + /// The type of the session resource file. + public string Type { get; } + /// The type of the content of this file. + public string ContentType { get; } + /// The size of the file. + public long? SizeInBytes { get; } + /// The date time in RFC3339 format when the file was last modified. + public DateTimeOffset LastModifiedAt { get; } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionResourceFiles.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionResourceFiles.cs new file mode 100644 index 000000000000..d8e594dd3af7 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/SessionResourceFiles.cs @@ -0,0 +1,722 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Threading; +using System.Threading.Tasks; +using Autorest.CSharp.Core; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Microsoft.App.DynamicSessions +{ + // Data plane generated sub-client. + /// The SessionResourceFiles sub-client. + public partial class SessionResourceFiles + { + private static readonly string[] AuthorizationScopes = new string[] { "https://dynamicsessions.io/.default" }; + private readonly TokenCredential _tokenCredential; + private readonly HttpPipeline _pipeline; + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// The ClientDiagnostics is used to provide tracing support for the client library. + internal ClientDiagnostics ClientDiagnostics { get; } + + /// The HTTP pipeline for sending and receiving REST requests and responses. + public virtual HttpPipeline Pipeline => _pipeline; + + /// Initializes a new instance of SessionResourceFiles for mocking. + protected SessionResourceFiles() + { + } + + /// Initializes a new instance of SessionResourceFiles. + /// The handler for diagnostic messaging in the client. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// The token credential to copy. + /// The management endpoint of the session pool. + /// The API version to use for this operation. + internal SessionResourceFiles(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, TokenCredential tokenCredential, Uri endpoint, string apiVersion) + { + ClientDiagnostics = clientDiagnostics; + _pipeline = pipeline; + _tokenCredential = tokenCredential; + _endpoint = endpoint; + _apiVersion = apiVersion; + } + + /// Get the file resource. + /// The name of the file. + /// The user-assigned identifier of the session. + /// The path of the file after uploaded. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + /// + public virtual async Task> GetSessionResourceFileAsync(string name, string identifier, string path = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(name, nameof(name)); + Argument.AssertNotNull(identifier, nameof(identifier)); + + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await GetSessionResourceFileAsync(name, identifier, path, context).ConfigureAwait(false); + return Response.FromValue(SessionResourceFile.FromResponse(response), response); + } + + /// Get the file resource. + /// The name of the file. + /// The user-assigned identifier of the session. + /// The path of the file after uploaded. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + /// + public virtual Response GetSessionResourceFile(string name, string identifier, string path = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(name, nameof(name)); + Argument.AssertNotNull(identifier, nameof(identifier)); + + RequestContext context = FromCancellationToken(cancellationToken); + Response response = GetSessionResourceFile(name, identifier, path, context); + return Response.FromValue(SessionResourceFile.FromResponse(response), response); + } + + /// + /// [Protocol Method] Get the file resource. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// Please try the simpler convenience overload with strongly typed models first. + /// + /// + /// + /// + /// The name of the file. + /// The user-assigned identifier of the session. + /// The path of the file after uploaded. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + /// + public virtual async Task GetSessionResourceFileAsync(string name, string identifier, string path, RequestContext context) + { + Argument.AssertNotNullOrEmpty(name, nameof(name)); + Argument.AssertNotNull(identifier, nameof(identifier)); + + using var scope = ClientDiagnostics.CreateScope("SessionResourceFiles.GetSessionResourceFile"); + scope.Start(); + try + { + using HttpMessage message = CreateGetSessionResourceFileRequest(name, identifier, path, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Get the file resource. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// Please try the simpler convenience overload with strongly typed models first. + /// + /// + /// + /// + /// The name of the file. + /// The user-assigned identifier of the session. + /// The path of the file after uploaded. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + /// + public virtual Response GetSessionResourceFile(string name, string identifier, string path, RequestContext context) + { + Argument.AssertNotNullOrEmpty(name, nameof(name)); + Argument.AssertNotNull(identifier, nameof(identifier)); + + using var scope = ClientDiagnostics.CreateScope("SessionResourceFiles.GetSessionResourceFile"); + scope.Start(); + try + { + using HttpMessage message = CreateGetSessionResourceFileRequest(name, identifier, path, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + // The convenience method is omitted here because it has exactly the same parameter list as the corresponding protocol method + /// + /// [Protocol Method] Delete the file. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// The name of the file. + /// The user-assigned identifier of the session. + /// The path of the file after uploaded. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + /// + public virtual async Task DeleteAsync(string name, string identifier, string path = null, RequestContext context = null) + { + Argument.AssertNotNullOrEmpty(name, nameof(name)); + Argument.AssertNotNull(identifier, nameof(identifier)); + + using var scope = ClientDiagnostics.CreateScope("SessionResourceFiles.Delete"); + scope.Start(); + try + { + using HttpMessage message = CreateDeleteRequest(name, identifier, path, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + // The convenience method is omitted here because it has exactly the same parameter list as the corresponding protocol method + /// + /// [Protocol Method] Delete the file. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// The name of the file. + /// The user-assigned identifier of the session. + /// The path of the file after uploaded. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + /// + public virtual Response Delete(string name, string identifier, string path = null, RequestContext context = null) + { + Argument.AssertNotNullOrEmpty(name, nameof(name)); + Argument.AssertNotNull(identifier, nameof(identifier)); + + using var scope = ClientDiagnostics.CreateScope("SessionResourceFiles.Delete"); + scope.Start(); + try + { + using HttpMessage message = CreateDeleteRequest(name, identifier, path, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Upload a file to a session. + /// The user-assigned identifier of the session. + /// Multipart body. + /// The path of the file after uploaded. + /// The cancellation token to use. + /// or is null. + /// + public virtual async Task> UploadAsync(string identifier, UploadRequest body, string path = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(identifier, nameof(identifier)); + Argument.AssertNotNull(body, nameof(body)); + + using MultipartFormDataRequestContent content = body.ToMultipartRequestContent(); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await UploadAsync(identifier, content, content.ContentType, path, context).ConfigureAwait(false); + return Response.FromValue(SessionResourceFile.FromResponse(response), response); + } + + /// Upload a file to a session. + /// The user-assigned identifier of the session. + /// Multipart body. + /// The path of the file after uploaded. + /// The cancellation token to use. + /// or is null. + /// + public virtual Response Upload(string identifier, UploadRequest body, string path = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(identifier, nameof(identifier)); + Argument.AssertNotNull(body, nameof(body)); + + using MultipartFormDataRequestContent content = body.ToMultipartRequestContent(); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = Upload(identifier, content, content.ContentType, path, context); + return Response.FromValue(SessionResourceFile.FromResponse(response), response); + } + + /// + /// [Protocol Method] Upload a file to a session. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// Please try the simpler convenience overload with strongly typed models first. + /// + /// + /// + /// + /// The user-assigned identifier of the session. + /// The content to send as the body of the request. + /// The content type for the operation. Always multipart/form-data for this operation. Allowed values: "multipart/form-data". + /// The path of the file after uploaded. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// Service returned a non-success status code. + /// The response returned from the service. + /// + public virtual async Task UploadAsync(string identifier, RequestContent content, string contentType, string path = null, RequestContext context = null) + { + Argument.AssertNotNull(identifier, nameof(identifier)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("SessionResourceFiles.Upload"); + scope.Start(); + try + { + using HttpMessage message = CreateUploadRequest(identifier, content, contentType, path, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Upload a file to a session. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// Please try the simpler convenience overload with strongly typed models first. + /// + /// + /// + /// + /// The user-assigned identifier of the session. + /// The content to send as the body of the request. + /// The content type for the operation. Always multipart/form-data for this operation. Allowed values: "multipart/form-data". + /// The path of the file after uploaded. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// Service returned a non-success status code. + /// The response returned from the service. + /// + public virtual Response Upload(string identifier, RequestContent content, string contentType, string path = null, RequestContext context = null) + { + Argument.AssertNotNull(identifier, nameof(identifier)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("SessionResourceFiles.Upload"); + scope.Start(); + try + { + using HttpMessage message = CreateUploadRequest(identifier, content, contentType, path, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Get the content of the file. + /// The name of the file. + /// The user-assigned identifier of the session. + /// The path of the file after uploaded. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + /// + public virtual async Task> GetContentAsync(string name, string identifier, string path = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(name, nameof(name)); + Argument.AssertNotNull(identifier, nameof(identifier)); + + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await GetContentAsync(name, identifier, path, context).ConfigureAwait(false); + return Response.FromValue(response.Content, response); + } + + /// Get the content of the file. + /// The name of the file. + /// The user-assigned identifier of the session. + /// The path of the file after uploaded. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + /// + public virtual Response GetContent(string name, string identifier, string path = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(name, nameof(name)); + Argument.AssertNotNull(identifier, nameof(identifier)); + + RequestContext context = FromCancellationToken(cancellationToken); + Response response = GetContent(name, identifier, path, context); + return Response.FromValue(response.Content, response); + } + + /// + /// [Protocol Method] Get the content of the file. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// Please try the simpler convenience overload with strongly typed models first. + /// + /// + /// + /// + /// The name of the file. + /// The user-assigned identifier of the session. + /// The path of the file after uploaded. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + /// + public virtual async Task GetContentAsync(string name, string identifier, string path, RequestContext context) + { + Argument.AssertNotNullOrEmpty(name, nameof(name)); + Argument.AssertNotNull(identifier, nameof(identifier)); + + using var scope = ClientDiagnostics.CreateScope("SessionResourceFiles.GetContent"); + scope.Start(); + try + { + using HttpMessage message = CreateGetContentRequest(name, identifier, path, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Get the content of the file. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// Please try the simpler convenience overload with strongly typed models first. + /// + /// + /// + /// + /// The name of the file. + /// The user-assigned identifier of the session. + /// The path of the file after uploaded. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + /// + public virtual Response GetContent(string name, string identifier, string path, RequestContext context) + { + Argument.AssertNotNullOrEmpty(name, nameof(name)); + Argument.AssertNotNull(identifier, nameof(identifier)); + + using var scope = ClientDiagnostics.CreateScope("SessionResourceFiles.GetContent"); + scope.Start(); + try + { + using HttpMessage message = CreateGetContentRequest(name, identifier, path, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// List the file resources. + /// The user-assigned identifier of the session. + /// The path of the file after uploaded. + /// The cancellation token to use. + /// is null. + /// + public virtual AsyncPageable GetSessionResourceFilesAsync(string identifier, string path = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(identifier, nameof(identifier)); + + RequestContext context = cancellationToken.CanBeCanceled ? new RequestContext { CancellationToken = cancellationToken } : null; + HttpMessage FirstPageRequest(int? pageSizeHint) => CreateGetSessionResourceFilesRequest(identifier, path, context); + HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => CreateGetSessionResourceFilesNextPageRequest(nextLink, identifier, path, context); + return GeneratorPageableHelpers.CreateAsyncPageable(FirstPageRequest, NextPageRequest, e => SessionResourceFile.DeserializeSessionResourceFile(e), ClientDiagnostics, _pipeline, "SessionResourceFiles.GetSessionResourceFiles", "value", "nextLink", context); + } + + /// List the file resources. + /// The user-assigned identifier of the session. + /// The path of the file after uploaded. + /// The cancellation token to use. + /// is null. + /// + public virtual Pageable GetSessionResourceFiles(string identifier, string path = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(identifier, nameof(identifier)); + + RequestContext context = cancellationToken.CanBeCanceled ? new RequestContext { CancellationToken = cancellationToken } : null; + HttpMessage FirstPageRequest(int? pageSizeHint) => CreateGetSessionResourceFilesRequest(identifier, path, context); + HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => CreateGetSessionResourceFilesNextPageRequest(nextLink, identifier, path, context); + return GeneratorPageableHelpers.CreatePageable(FirstPageRequest, NextPageRequest, e => SessionResourceFile.DeserializeSessionResourceFile(e), ClientDiagnostics, _pipeline, "SessionResourceFiles.GetSessionResourceFiles", "value", "nextLink", context); + } + + /// + /// [Protocol Method] List the file resources. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// Please try the simpler convenience overload with strongly typed models first. + /// + /// + /// + /// + /// The user-assigned identifier of the session. + /// The path of the file after uploaded. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// is null. + /// Service returned a non-success status code. + /// The from the service containing a list of objects. Details of the body schema for each item in the collection are in the Remarks section below. + /// + public virtual AsyncPageable GetSessionResourceFilesAsync(string identifier, string path, RequestContext context) + { + Argument.AssertNotNull(identifier, nameof(identifier)); + + HttpMessage FirstPageRequest(int? pageSizeHint) => CreateGetSessionResourceFilesRequest(identifier, path, context); + HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => CreateGetSessionResourceFilesNextPageRequest(nextLink, identifier, path, context); + return GeneratorPageableHelpers.CreateAsyncPageable(FirstPageRequest, NextPageRequest, e => BinaryData.FromString(e.GetRawText()), ClientDiagnostics, _pipeline, "SessionResourceFiles.GetSessionResourceFiles", "value", "nextLink", context); + } + + /// + /// [Protocol Method] List the file resources. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// Please try the simpler convenience overload with strongly typed models first. + /// + /// + /// + /// + /// The user-assigned identifier of the session. + /// The path of the file after uploaded. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// is null. + /// Service returned a non-success status code. + /// The from the service containing a list of objects. Details of the body schema for each item in the collection are in the Remarks section below. + /// + public virtual Pageable GetSessionResourceFiles(string identifier, string path, RequestContext context) + { + Argument.AssertNotNull(identifier, nameof(identifier)); + + HttpMessage FirstPageRequest(int? pageSizeHint) => CreateGetSessionResourceFilesRequest(identifier, path, context); + HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => CreateGetSessionResourceFilesNextPageRequest(nextLink, identifier, path, context); + return GeneratorPageableHelpers.CreatePageable(FirstPageRequest, NextPageRequest, e => BinaryData.FromString(e.GetRawText()), ClientDiagnostics, _pipeline, "SessionResourceFiles.GetSessionResourceFiles", "value", "nextLink", context); + } + + internal HttpMessage CreateGetSessionResourceFilesRequest(string identifier, string path, RequestContext context) + { + var message = _pipeline.CreateMessage(context, ResponseClassifier200); + var request = message.Request; + request.Method = RequestMethod.Get; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/files", false); + uri.AppendQuery("identifier", identifier, true); + uri.AppendQuery("api-version", _apiVersion, true); + if (path != null) + { + uri.AppendQuery("path", path, true); + } + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateGetSessionResourceFileRequest(string name, string identifier, string path, RequestContext context) + { + var message = _pipeline.CreateMessage(context, ResponseClassifier200); + var request = message.Request; + request.Method = RequestMethod.Get; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/files/", false); + uri.AppendPath(name, true); + uri.AppendQuery("identifier", identifier, true); + uri.AppendQuery("api-version", _apiVersion, true); + if (path != null) + { + uri.AppendQuery("path", path, true); + } + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateDeleteRequest(string name, string identifier, string path, RequestContext context) + { + var message = _pipeline.CreateMessage(context, ResponseClassifier204); + var request = message.Request; + request.Method = RequestMethod.Delete; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/files/", false); + uri.AppendPath(name, true); + uri.AppendQuery("identifier", identifier, true); + uri.AppendQuery("api-version", _apiVersion, true); + if (path != null) + { + uri.AppendQuery("path", path, true); + } + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateUploadRequest(string identifier, RequestContent content, string contentType, string path, RequestContext context) + { + var message = _pipeline.CreateMessage(context, ResponseClassifier200); + var request = message.Request; + request.Method = RequestMethod.Post; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/files", false); + uri.AppendQuery("identifier", identifier, true); + uri.AppendQuery("api-version", _apiVersion, true); + if (path != null) + { + uri.AppendQuery("path", path, true); + } + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + request.Headers.Add("Content-Type", contentType); + request.Content = content; + return message; + } + + internal HttpMessage CreateGetContentRequest(string name, string identifier, string path, RequestContext context) + { + var message = _pipeline.CreateMessage(context, ResponseClassifier200); + var request = message.Request; + request.Method = RequestMethod.Get; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/files/", false); + uri.AppendPath(name, true); + uri.AppendPath("/content", false); + uri.AppendQuery("identifier", identifier, true); + uri.AppendQuery("api-version", _apiVersion, true); + if (path != null) + { + uri.AppendQuery("path", path, true); + } + request.Uri = uri; + request.Headers.Add("Accept", "application/octet-stream"); + return message; + } + + internal HttpMessage CreateGetSessionResourceFilesNextPageRequest(string nextLink, string identifier, string path, RequestContext context) + { + var message = _pipeline.CreateMessage(context, ResponseClassifier200); + var request = message.Request; + request.Method = RequestMethod.Get; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendRawNextLink(nextLink, false); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + return message; + } + + private static RequestContext DefaultRequestContext = new RequestContext(); + internal static RequestContext FromCancellationToken(CancellationToken cancellationToken = default) + { + if (!cancellationToken.CanBeCanceled) + { + return DefaultRequestContext; + } + + return new RequestContext() { CancellationToken = cancellationToken }; + } + + private static ResponseClassifier _responseClassifier200; + private static ResponseClassifier ResponseClassifier200 => _responseClassifier200 ??= new StatusCodeClassifier(stackalloc ushort[] { 200 }); + private static ResponseClassifier _responseClassifier204; + private static ResponseClassifier ResponseClassifier204 => _responseClassifier204 ??= new StatusCodeClassifier(stackalloc ushort[] { 204 }); + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/UploadRequest.Serialization.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/UploadRequest.Serialization.cs new file mode 100644 index 000000000000..b5630fdfa449 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/UploadRequest.Serialization.cs @@ -0,0 +1,175 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.IO; +using System.Text.Json; +using Azure; +using Azure.Core; + +namespace Microsoft.App.DynamicSessions +{ + public partial class UploadRequest : IUtf8JsonSerializable, IJsonModel + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(UploadRequest)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("file"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(global::System.BinaryData.FromStream(File)); +#else + using (JsonDocument document = JsonDocument.Parse(BinaryData.FromStream(File), ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + if (options.Format != "W" && _serializedAdditionalRawData != null) + { + foreach (var item in _serializedAdditionalRawData) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + UploadRequest IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(UploadRequest)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeUploadRequest(document.RootElement, options); + } + + internal static UploadRequest DeserializeUploadRequest(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + Stream file = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("file"u8)) + { + file = BinaryData.FromString(property.Value.GetRawText()).ToStream(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new UploadRequest(file, serializedAdditionalRawData); + } + + private BinaryData SerializeMultipart(ModelReaderWriterOptions options) + { + using MultipartFormDataRequestContent content = ToMultipartRequestContent(); + using MemoryStream stream = new MemoryStream(); + content.WriteTo(stream); + if (stream.Position > int.MaxValue) + { + return BinaryData.FromStream(stream); + } + else + { + return new BinaryData(stream.GetBuffer().AsMemory(0, (int)stream.Position)); + } + } + + internal virtual MultipartFormDataRequestContent ToMultipartRequestContent() + { + MultipartFormDataRequestContent content = new MultipartFormDataRequestContent(); + content.Add(File, "file", "file", "application/octet-stream"); + return content; + } + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options); + case "MFD": + return SerializeMultipart(options); + default: + throw new FormatException($"The model {nameof(UploadRequest)} does not support writing '{options.Format}' format."); + } + } + + UploadRequest IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + { + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + + switch (format) + { + case "J": + { + using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeUploadRequest(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(UploadRequest)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "MFD"; + + /// Deserializes the model from a raw response. + /// The response to deserialize the model from. + internal static UploadRequest FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeUploadRequest(document.RootElement); + } + + /// Convert into a . + internal virtual RequestContent ToRequestContent() + { + var content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + return content; + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/UploadRequest.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/UploadRequest.cs new file mode 100644 index 000000000000..e4101c59cecf --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Generated/UploadRequest.cs @@ -0,0 +1,76 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.IO; + +namespace Microsoft.App.DynamicSessions +{ + /// The UploadRequest. + public partial class UploadRequest + { + /// + /// Keeps track of any properties unknown to the library. + /// + /// To assign an object to the value of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\"") + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }) + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}") + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + private IDictionary _serializedAdditionalRawData; + + /// Initializes a new instance of . + /// The file to upload. + /// is null. + public UploadRequest(Stream file) + { + Argument.AssertNotNull(file, nameof(file)); + + File = file; + } + + /// Initializes a new instance of . + /// The file to upload. + /// Keeps track of any properties unknown to the library. + internal UploadRequest(Stream file, IDictionary serializedAdditionalRawData) + { + File = file; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal UploadRequest() + { + } + + /// The file to upload. + public Stream File { get; } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Microsoft.App.DynamicSessions.csproj b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Microsoft.App.DynamicSessions.csproj new file mode 100644 index 000000000000..66908b681557 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Microsoft.App.DynamicSessions.csproj @@ -0,0 +1,19 @@ + + + This is the Microsoft.App.DynamicSessions client library for developing .NET applications with rich experience. + Azure SDK Code Generation Microsoft.App.DynamicSessions for Azure Data Plane + 1.0.0-beta.1 + Microsoft.App.DynamicSessions + $(RequiredTargetFrameworks) + true + + + + + + + + + + + diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Properties/AssemblyInfo.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Properties/AssemblyInfo.cs new file mode 100644 index 000000000000..30c11b3b63b9 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/src/Properties/AssemblyInfo.cs @@ -0,0 +1,6 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("Microsoft.App.DynamicSessions.Tests, PublicKey = 0024000004800000940000000602000000240000525341310004000001000100d15ddcb29688295338af4b7686603fe614abd555e09efba8fb88ee09e1f7b1ccaeed2e8f823fa9eef3fdd60217fc012ea67d2479751a0b8c087a4185541b851bd8b16f8d91b840e51b1cb0ba6fe647997e57429265e85ef62d565db50a69ae1647d54d7bd855e4db3d8a91510e5bcbd0edfbbecaa20a7bd9ae74593daa7b11b4")] diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/tests/Generated/Samples/Samples_CodeExecution.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/tests/Generated/Samples/Samples_CodeExecution.cs new file mode 100644 index 000000000000..8e0115b4ae8f --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/tests/Generated/Samples/Samples_CodeExecution.cs @@ -0,0 +1,342 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Text.Json; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Identity; +using NUnit.Framework; + +namespace Microsoft.App.DynamicSessions.Samples +{ + public partial class Samples_CodeExecution + { + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_SessionCodeExecutionResource_GetSessionCodeExecutionResource_CodeExecutionGetCompleted() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + Response response = client.GetSessionCodeExecutionResource("testExecutionId", "testSessionIdentifier", null); + + JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; + Console.WriteLine(result.GetProperty("id").ToString()); + Console.WriteLine(result.GetProperty("identifier").ToString()); + Console.WriteLine(result.GetProperty("executionType").ToString()); + Console.WriteLine(result.GetProperty("status").ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_SessionCodeExecutionResource_GetSessionCodeExecutionResource_CodeExecutionGetCompleted_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + Response response = await client.GetSessionCodeExecutionResourceAsync("testExecutionId", "testSessionIdentifier", null); + + JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; + Console.WriteLine(result.GetProperty("id").ToString()); + Console.WriteLine(result.GetProperty("identifier").ToString()); + Console.WriteLine(result.GetProperty("executionType").ToString()); + Console.WriteLine(result.GetProperty("status").ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_SessionCodeExecutionResource_GetSessionCodeExecutionResource_CodeExecutionGetCompleted_Convenience() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + Response response = client.GetSessionCodeExecutionResource("testExecutionId", "testSessionIdentifier"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_SessionCodeExecutionResource_GetSessionCodeExecutionResource_CodeExecutionGetCompleted_Convenience_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + Response response = await client.GetSessionCodeExecutionResourceAsync("testExecutionId", "testSessionIdentifier"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_SessionCodeExecutionResource_GetSessionCodeExecutionResource_CodeExecutionGetRunning() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + Response response = client.GetSessionCodeExecutionResource("testExecutionId", "testSessionIdentifier", null); + + JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; + Console.WriteLine(result.GetProperty("id").ToString()); + Console.WriteLine(result.GetProperty("identifier").ToString()); + Console.WriteLine(result.GetProperty("executionType").ToString()); + Console.WriteLine(result.GetProperty("status").ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_SessionCodeExecutionResource_GetSessionCodeExecutionResource_CodeExecutionGetRunning_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + Response response = await client.GetSessionCodeExecutionResourceAsync("testExecutionId", "testSessionIdentifier", null); + + JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; + Console.WriteLine(result.GetProperty("id").ToString()); + Console.WriteLine(result.GetProperty("identifier").ToString()); + Console.WriteLine(result.GetProperty("executionType").ToString()); + Console.WriteLine(result.GetProperty("status").ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_SessionCodeExecutionResource_GetSessionCodeExecutionResource_CodeExecutionGetRunning_Convenience() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + Response response = client.GetSessionCodeExecutionResource("testExecutionId", "testSessionIdentifier"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_SessionCodeExecutionResource_GetSessionCodeExecutionResource_CodeExecutionGetRunning_Convenience_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + Response response = await client.GetSessionCodeExecutionResourceAsync("testExecutionId", "testSessionIdentifier"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_CodeExecution_Execute_CodeExecutionExecuteAsyncCompleted() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + using RequestContent content = RequestContent.Create(new + { + codeInputType = "Inline", + executionType = "Asynchronous", + code = "print(7*9)", + timeoutInSeconds = 60L, + }); + Operation operation = client.Execute(WaitUntil.Completed, "testSessionIdentifier", content); + BinaryData responseData = operation.Value; + + JsonElement result = JsonDocument.Parse(responseData.ToStream()).RootElement; + Console.WriteLine(result.ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_CodeExecution_Execute_CodeExecutionExecuteAsyncCompleted_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + using RequestContent content = RequestContent.Create(new + { + codeInputType = "Inline", + executionType = "Asynchronous", + code = "print(7*9)", + timeoutInSeconds = 60L, + }); + Operation operation = await client.ExecuteAsync(WaitUntil.Completed, "testSessionIdentifier", content); + BinaryData responseData = operation.Value; + + JsonElement result = JsonDocument.Parse(responseData.ToStream()).RootElement; + Console.WriteLine(result.ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_CodeExecution_Execute_CodeExecutionExecuteAsyncCompleted_Convenience() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + SessionCodeExecutionRequest codeExecutionRequest = new SessionCodeExecutionRequest(CodeInputType.Inline, ExecutionType.Asynchronous, "print(7*9)", 60L); + Operation operation = client.Execute(WaitUntil.Completed, "testSessionIdentifier", codeExecutionRequest); + SessionCodeExecutionResult responseData = operation.Value; + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_CodeExecution_Execute_CodeExecutionExecuteAsyncCompleted_Convenience_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + SessionCodeExecutionRequest codeExecutionRequest = new SessionCodeExecutionRequest(CodeInputType.Inline, ExecutionType.Asynchronous, "print(7*9)", 60L); + Operation operation = await client.ExecuteAsync(WaitUntil.Completed, "testSessionIdentifier", codeExecutionRequest); + SessionCodeExecutionResult responseData = operation.Value; + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_CodeExecution_Execute_CodeExecutionExecuteAsyncRunning() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + using RequestContent content = RequestContent.Create(new + { + codeInputType = "Inline", + executionType = "Asynchronous", + code = "print(7*9)", + timeoutInSeconds = 60L, + }); + Operation operation = client.Execute(WaitUntil.Completed, "testSessionIdentifier", content); + BinaryData responseData = operation.Value; + + JsonElement result = JsonDocument.Parse(responseData.ToStream()).RootElement; + Console.WriteLine(result.ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_CodeExecution_Execute_CodeExecutionExecuteAsyncRunning_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + using RequestContent content = RequestContent.Create(new + { + codeInputType = "Inline", + executionType = "Asynchronous", + code = "print(7*9)", + timeoutInSeconds = 60L, + }); + Operation operation = await client.ExecuteAsync(WaitUntil.Completed, "testSessionIdentifier", content); + BinaryData responseData = operation.Value; + + JsonElement result = JsonDocument.Parse(responseData.ToStream()).RootElement; + Console.WriteLine(result.ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_CodeExecution_Execute_CodeExecutionExecuteAsyncRunning_Convenience() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + SessionCodeExecutionRequest codeExecutionRequest = new SessionCodeExecutionRequest(CodeInputType.Inline, ExecutionType.Asynchronous, "print(7*9)", 60L); + Operation operation = client.Execute(WaitUntil.Completed, "testSessionIdentifier", codeExecutionRequest); + SessionCodeExecutionResult responseData = operation.Value; + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_CodeExecution_Execute_CodeExecutionExecuteAsyncRunning_Convenience_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + SessionCodeExecutionRequest codeExecutionRequest = new SessionCodeExecutionRequest(CodeInputType.Inline, ExecutionType.Asynchronous, "print(7*9)", 60L); + Operation operation = await client.ExecuteAsync(WaitUntil.Completed, "testSessionIdentifier", codeExecutionRequest); + SessionCodeExecutionResult responseData = operation.Value; + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_CodeExecution_Execute_CodeExecutionExecuteSync() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + using RequestContent content = RequestContent.Create(new + { + codeInputType = "Inline", + executionType = "Synchronous", + code = "print(7*9)", + timeoutInSeconds = 60L, + }); + Operation operation = client.Execute(WaitUntil.Completed, "testSessionIdentifier", content); + BinaryData responseData = operation.Value; + + JsonElement result = JsonDocument.Parse(responseData.ToStream()).RootElement; + Console.WriteLine(result.ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_CodeExecution_Execute_CodeExecutionExecuteSync_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + using RequestContent content = RequestContent.Create(new + { + codeInputType = "Inline", + executionType = "Synchronous", + code = "print(7*9)", + timeoutInSeconds = 60L, + }); + Operation operation = await client.ExecuteAsync(WaitUntil.Completed, "testSessionIdentifier", content); + BinaryData responseData = operation.Value; + + JsonElement result = JsonDocument.Parse(responseData.ToStream()).RootElement; + Console.WriteLine(result.ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_CodeExecution_Execute_CodeExecutionExecuteSync_Convenience() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + SessionCodeExecutionRequest codeExecutionRequest = new SessionCodeExecutionRequest(CodeInputType.Inline, ExecutionType.Synchronous, "print(7*9)", 60L); + Operation operation = client.Execute(WaitUntil.Completed, "testSessionIdentifier", codeExecutionRequest); + SessionCodeExecutionResult responseData = operation.Value; + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_CodeExecution_Execute_CodeExecutionExecuteSync_Convenience_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + CodeExecution client = new DynamicSessionsClient(endpoint, credential).GetCodeExecutionClient(apiVersion: "2024-10-02-preview"); + + SessionCodeExecutionRequest codeExecutionRequest = new SessionCodeExecutionRequest(CodeInputType.Inline, ExecutionType.Synchronous, "print(7*9)", 60L); + Operation operation = await client.ExecuteAsync(WaitUntil.Completed, "testSessionIdentifier", codeExecutionRequest); + SessionCodeExecutionResult responseData = operation.Value; + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/tests/Generated/Samples/Samples_SessionResourceFiles.cs b/sdk/microsoft.app/Microsoft.App.DynamicSessions/tests/Generated/Samples/Samples_SessionResourceFiles.cs new file mode 100644 index 000000000000..f1aa68e5c63d --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/tests/Generated/Samples/Samples_SessionResourceFiles.cs @@ -0,0 +1,268 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Text.Json; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Identity; +using NUnit.Framework; + +namespace Microsoft.App.DynamicSessions.Samples +{ + public partial class Samples_SessionResourceFiles + { + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_SessionResourceFile_GetSessionResourceFile_SessionResourceFilesGet() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + Response response = client.GetSessionResourceFile("testfile", "testSessionIdentifier", "/", null); + + JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; + Console.WriteLine(result.GetProperty("name").ToString()); + Console.WriteLine(result.GetProperty("type").ToString()); + Console.WriteLine(result.GetProperty("lastModifiedAt").ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_SessionResourceFile_GetSessionResourceFile_SessionResourceFilesGet_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + Response response = await client.GetSessionResourceFileAsync("testfile", "testSessionIdentifier", "/", null); + + JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; + Console.WriteLine(result.GetProperty("name").ToString()); + Console.WriteLine(result.GetProperty("type").ToString()); + Console.WriteLine(result.GetProperty("lastModifiedAt").ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_SessionResourceFile_GetSessionResourceFile_SessionResourceFilesGet_Convenience() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + Response response = client.GetSessionResourceFile("testfile", "testSessionIdentifier"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_SessionResourceFile_GetSessionResourceFile_SessionResourceFilesGet_Convenience_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + Response response = await client.GetSessionResourceFileAsync("testfile", "testSessionIdentifier"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_SessionResourceFile_Delete_SessionResourceFilesDelete() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + Response response = client.Delete("testfile", "testSessionIdentifier"); + + Console.WriteLine(response.Status); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_SessionResourceFile_Delete_SessionResourceFilesDelete_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + Response response = await client.DeleteAsync("testfile", "testSessionIdentifier"); + + Console.WriteLine(response.Status); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_SessionResourceFiles_Upload_SessionResourceFilesUpload() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + using RequestContent content = null; + Response response = client.Upload("testSessionIdentifier", content, null); + + JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; + Console.WriteLine(result.GetProperty("name").ToString()); + Console.WriteLine(result.GetProperty("type").ToString()); + Console.WriteLine(result.GetProperty("lastModifiedAt").ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_SessionResourceFiles_Upload_SessionResourceFilesUpload_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + using RequestContent content = null; + Response response = await client.UploadAsync("testSessionIdentifier", content, null); + + JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; + Console.WriteLine(result.GetProperty("name").ToString()); + Console.WriteLine(result.GetProperty("type").ToString()); + Console.WriteLine(result.GetProperty("lastModifiedAt").ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_SessionResourceFiles_Upload_SessionResourceFilesUpload_Convenience() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + UploadRequest body = null; + Response response = client.Upload("testSessionIdentifier", body); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_SessionResourceFiles_Upload_SessionResourceFilesUpload_Convenience_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + UploadRequest body = null; + Response response = await client.UploadAsync("testSessionIdentifier", body); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_SessionResourceFiles_GetContent_SessionResourceFilesGetContent() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + Response response = client.GetContent("testfile", "testSessionIdentifier", "/", null); + + JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; + Console.WriteLine(result.ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_SessionResourceFiles_GetContent_SessionResourceFilesGetContent_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + Response response = await client.GetContentAsync("testfile", "testSessionIdentifier", "/", null); + + JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement; + Console.WriteLine(result.ToString()); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_SessionResourceFiles_GetContent_SessionResourceFilesGetContent_Convenience() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + Response response = client.GetContent("testfile", "testSessionIdentifier"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_SessionResourceFiles_GetContent_SessionResourceFilesGetContent_Convenience_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + Response response = await client.GetContentAsync("testfile", "testSessionIdentifier"); + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_SessionResourceFile_GetSessionResourceFiles_SessionResourceFilesList() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + foreach (BinaryData item in client.GetSessionResourceFiles("testSessionIdentifier", "/", null)) + { + JsonElement result = JsonDocument.Parse(item.ToStream()).RootElement; + Console.WriteLine(result.GetProperty("name").ToString()); + Console.WriteLine(result.GetProperty("type").ToString()); + Console.WriteLine(result.GetProperty("lastModifiedAt").ToString()); + } + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_SessionResourceFile_GetSessionResourceFiles_SessionResourceFilesList_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + await foreach (BinaryData item in client.GetSessionResourceFilesAsync("testSessionIdentifier", "/", null)) + { + JsonElement result = JsonDocument.Parse(item.ToStream()).RootElement; + Console.WriteLine(result.GetProperty("name").ToString()); + Console.WriteLine(result.GetProperty("type").ToString()); + Console.WriteLine(result.GetProperty("lastModifiedAt").ToString()); + } + } + + [Test] + [Ignore("Only validating compilation of examples")] + public void Example_SessionResourceFile_GetSessionResourceFiles_SessionResourceFilesList_Convenience() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + foreach (SessionResourceFile item in client.GetSessionResourceFiles("testSessionIdentifier")) + { + } + } + + [Test] + [Ignore("Only validating compilation of examples")] + public async Task Example_SessionResourceFile_GetSessionResourceFiles_SessionResourceFilesList_Convenience_Async() + { + Uri endpoint = new Uri(""); + TokenCredential credential = new DefaultAzureCredential(); + SessionResourceFiles client = new DynamicSessionsClient(endpoint, credential).GetSessionResourceFilesClient(apiVersion: "2024-10-02-preview"); + + await foreach (SessionResourceFile item in client.GetSessionResourceFilesAsync("testSessionIdentifier")) + { + } + } + } +} diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/tests/Microsoft.App.DynamicSessions.Tests.csproj b/sdk/microsoft.app/Microsoft.App.DynamicSessions/tests/Microsoft.App.DynamicSessions.Tests.csproj new file mode 100644 index 000000000000..060a1cce65bd --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/tests/Microsoft.App.DynamicSessions.Tests.csproj @@ -0,0 +1,19 @@ + + + $(RequiredTargetFrameworks) + + $(NoWarn);CS1591 + + + + + + + + + + + + + + diff --git a/sdk/microsoft.app/Microsoft.App.DynamicSessions/tsp-location.yaml b/sdk/microsoft.app/Microsoft.App.DynamicSessions/tsp-location.yaml new file mode 100644 index 000000000000..90d903a3b876 --- /dev/null +++ b/sdk/microsoft.app/Microsoft.App.DynamicSessions/tsp-location.yaml @@ -0,0 +1,4 @@ +directory: specification/app/Microsoft.App.DynamicSessions +commit: 867d5344efa0e71c7fa4977eb814398f67aa8ee1 +repo: Azure/azure-rest-api-specs +additionalDirectories: diff --git a/sdk/qumulo/Azure.ResourceManager.Qumulo/Configuration.json b/sdk/qumulo/Azure.ResourceManager.Qumulo/Configuration.json new file mode 100644 index 000000000000..731cb16f6b1b --- /dev/null +++ b/sdk/qumulo/Azure.ResourceManager.Qumulo/Configuration.json @@ -0,0 +1,12 @@ +{ + "output-folder": ".", + "namespace": "Azure.ResourceManager.Qumulo", + "library-name": "Azure.ResourceManager.Qumulo", + "flavor": "azure", + "use-model-reader-writer": true, + "shared-source-folders": [ + "../../TempTypeSpecFiles/node_modules/@autorest/csharp/Generator.Shared", + "../../TempTypeSpecFiles/node_modules/@autorest/csharp/Azure.Core.Shared" + ], + "azure-arm": true +} diff --git a/sdk/qumulo/Azure.ResourceManager.Qumulo/tsp-location.yaml b/sdk/qumulo/Azure.ResourceManager.Qumulo/tsp-location.yaml new file mode 100644 index 000000000000..73a144bafdd0 --- /dev/null +++ b/sdk/qumulo/Azure.ResourceManager.Qumulo/tsp-location.yaml @@ -0,0 +1,4 @@ +directory: specification/liftrqumulo/Qumulo.Storage.Management +commit: 867d5344efa0e71c7fa4977eb814398f67aa8ee1 +repo: Azure/azure-rest-api-specs +additionalDirectories: diff --git a/sdk/qumulo/Azure.ResourceManager.Qumulo/tspCodeModel.json b/sdk/qumulo/Azure.ResourceManager.Qumulo/tspCodeModel.json new file mode 100644 index 000000000000..c619d5431f10 --- /dev/null +++ b/sdk/qumulo/Azure.ResourceManager.Qumulo/tspCodeModel.json @@ -0,0 +1,8501 @@ +{ + "$id": "1", + "name": "Qumulo.Storage", + "apiVersions": [ + "2024-06-19" + ], + "enums": [ + { + "$id": "2", + "kind": "enum", + "name": "MarketplaceSubscriptionStatus", + "crossLanguageDefinitionId": "LiftrBase.MarketplaceSubscriptionStatus", + "valueType": { + "$id": "3", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "4", + "kind": "enumvalue", + "name": "PendingFulfillmentStart", + "value": "PendingFulfillmentStart", + "valueType": { + "$id": "5", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "2" + }, + "doc": "Fulfillment has not started", + "decorators": [] + }, + { + "$id": "6", + "kind": "enumvalue", + "name": "Subscribed", + "value": "Subscribed", + "valueType": { + "$id": "7", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "2" + }, + "doc": "Marketplace offer is subscribed", + "decorators": [] + }, + { + "$id": "8", + "kind": "enumvalue", + "name": "Suspended", + "value": "Suspended", + "valueType": { + "$id": "9", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "2" + }, + "doc": "Marketplace offer is suspended because of non payment", + "decorators": [] + }, + { + "$id": "10", + "kind": "enumvalue", + "name": "Unsubscribed", + "value": "Unsubscribed", + "valueType": { + "$id": "11", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "2" + }, + "doc": "Marketplace offer is unsubscribed", + "decorators": [] + } + ], + "namespace": "Azure.ResourceManager.Qumulo", + "doc": "Marketplace subscription status of the file system resource", + "isFixed": false, + "isFlags": false, + "usage": "Output,Json,LroInitial,LroFinalEnvelope", + "decorators": [] + }, + { + "$id": "12", + "kind": "enum", + "name": "ProvisioningState", + "crossLanguageDefinitionId": "LiftrBase.ProvisioningState", + "valueType": { + "$id": "13", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "14", + "kind": "enumvalue", + "name": "Accepted", + "value": "Accepted", + "valueType": { + "$id": "15", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "12" + }, + "doc": "File system resource creation request accepted", + "decorators": [] + }, + { + "$id": "16", + "kind": "enumvalue", + "name": "Creating", + "value": "Creating", + "valueType": { + "$id": "17", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "12" + }, + "doc": "File system resource creation started", + "decorators": [] + }, + { + "$id": "18", + "kind": "enumvalue", + "name": "Updating", + "value": "Updating", + "valueType": { + "$id": "19", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "12" + }, + "doc": "File system resource is being updated", + "decorators": [] + }, + { + "$id": "20", + "kind": "enumvalue", + "name": "Deleting", + "value": "Deleting", + "valueType": { + "$id": "21", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "12" + }, + "doc": "File system resource deletion started", + "decorators": [] + }, + { + "$id": "22", + "kind": "enumvalue", + "name": "Succeeded", + "value": "Succeeded", + "valueType": { + "$id": "23", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "12" + }, + "doc": "File system resource creation successful", + "decorators": [] + }, + { + "$id": "24", + "kind": "enumvalue", + "name": "Failed", + "value": "Failed", + "valueType": { + "$id": "25", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "12" + }, + "doc": "File system resource creation failed", + "decorators": [] + }, + { + "$id": "26", + "kind": "enumvalue", + "name": "Canceled", + "value": "Canceled", + "valueType": { + "$id": "27", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "12" + }, + "doc": "File system resource creation canceled", + "decorators": [] + }, + { + "$id": "28", + "kind": "enumvalue", + "name": "Deleted", + "value": "Deleted", + "valueType": { + "$id": "29", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "12" + }, + "doc": "File system resource is deleted", + "decorators": [] + } + ], + "namespace": "Azure.ResourceManager.Qumulo", + "doc": "Provisioning State of the File system resource", + "isFixed": false, + "isFlags": false, + "usage": "Output,Json,LroInitial,LroFinalEnvelope", + "decorators": [] + }, + { + "$id": "30", + "kind": "enum", + "name": "ManagedServiceIdentityType", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ManagedServiceIdentityType", + "valueType": { + "$id": "31", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "32", + "kind": "enumvalue", + "name": "None", + "value": "None", + "valueType": { + "$id": "33", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "30" + }, + "doc": "No managed identity.", + "decorators": [] + }, + { + "$id": "34", + "kind": "enumvalue", + "name": "SystemAssigned", + "value": "SystemAssigned", + "valueType": { + "$id": "35", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "30" + }, + "doc": "System assigned managed identity.", + "decorators": [] + }, + { + "$id": "36", + "kind": "enumvalue", + "name": "UserAssigned", + "value": "UserAssigned", + "valueType": { + "$id": "37", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "30" + }, + "doc": "User assigned managed identity.", + "decorators": [] + }, + { + "$id": "38", + "kind": "enumvalue", + "name": "SystemAssigned,UserAssigned", + "value": "SystemAssigned,UserAssigned", + "valueType": { + "$id": "39", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "30" + }, + "doc": "System and user assigned managed identity.", + "decorators": [] + } + ], + "namespace": "Azure.ResourceManager.Qumulo", + "doc": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).", + "isFixed": false, + "isFlags": false, + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "decorators": [] + }, + { + "$id": "40", + "kind": "enum", + "name": "createdByType", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.createdByType", + "valueType": { + "$id": "41", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "42", + "kind": "enumvalue", + "name": "User", + "value": "User", + "valueType": { + "$id": "43", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "40" + }, + "doc": "The entity was created by a user.", + "decorators": [] + }, + { + "$id": "44", + "kind": "enumvalue", + "name": "Application", + "value": "Application", + "valueType": { + "$id": "45", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "40" + }, + "doc": "The entity was created by an application.", + "decorators": [] + }, + { + "$id": "46", + "kind": "enumvalue", + "name": "ManagedIdentity", + "value": "ManagedIdentity", + "valueType": { + "$id": "47", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "40" + }, + "doc": "The entity was created by a managed identity.", + "decorators": [] + }, + { + "$id": "48", + "kind": "enumvalue", + "name": "Key", + "value": "Key", + "valueType": { + "$id": "49", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "40" + }, + "doc": "The entity was created by a key.", + "decorators": [] + } + ], + "namespace": "Azure.ResourceManager.Qumulo", + "doc": "The kind of entity that created the resource.", + "isFixed": false, + "isFlags": false, + "usage": "Output,Json,LroInitial,LroFinalEnvelope", + "decorators": [] + }, + { + "$id": "50", + "kind": "enum", + "name": "ResourceProvisioningState", + "crossLanguageDefinitionId": "Azure.ResourceManager.ResourceProvisioningState", + "valueType": { + "$id": "51", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "52", + "kind": "enumvalue", + "name": "Succeeded", + "value": "Succeeded", + "valueType": { + "$id": "53", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "50" + }, + "doc": "Resource has been created.", + "decorators": [] + }, + { + "$id": "54", + "kind": "enumvalue", + "name": "Failed", + "value": "Failed", + "valueType": { + "$id": "55", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "50" + }, + "doc": "Resource creation failed.", + "decorators": [] + }, + { + "$id": "56", + "kind": "enumvalue", + "name": "Canceled", + "value": "Canceled", + "valueType": { + "$id": "57", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "50" + }, + "doc": "Resource creation was canceled.", + "decorators": [] + } + ], + "namespace": "Azure.ResourceManager.Qumulo", + "doc": "The provisioning state of a resource type.", + "isFixed": false, + "isFlags": false, + "usage": "LroPolling", + "decorators": [] + }, + { + "$id": "58", + "kind": "enum", + "name": "Origin", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Origin", + "valueType": { + "$id": "59", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "60", + "kind": "enumvalue", + "name": "user", + "value": "user", + "valueType": { + "$id": "61", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "58" + }, + "doc": "Indicates the operation is initiated by a user.", + "decorators": [] + }, + { + "$id": "62", + "kind": "enumvalue", + "name": "system", + "value": "system", + "valueType": { + "$id": "63", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "58" + }, + "doc": "Indicates the operation is initiated by a system.", + "decorators": [] + }, + { + "$id": "64", + "kind": "enumvalue", + "name": "user,system", + "value": "user,system", + "valueType": { + "$id": "65", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "58" + }, + "doc": "Indicates the operation is initiated by a user or system.", + "decorators": [] + } + ], + "namespace": "Azure.ResourceManager.Qumulo", + "doc": "The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is \"user,system\"", + "isFixed": false, + "isFlags": false, + "usage": "Output,Json", + "decorators": [] + }, + { + "$id": "66", + "kind": "enum", + "name": "ActionType", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ActionType", + "valueType": { + "$id": "67", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "68", + "kind": "enumvalue", + "name": "Internal", + "value": "Internal", + "valueType": { + "$id": "69", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "66" + }, + "doc": "Actions are for internal-only APIs.", + "decorators": [] + } + ], + "namespace": "Azure.ResourceManager.Qumulo", + "doc": "Extensible enum. Indicates the action type. \"Internal\" refers to actions that are for internal only APIs.", + "isFixed": false, + "isFlags": false, + "usage": "Output,Json", + "decorators": [] + }, + { + "$id": "70", + "kind": "enum", + "name": "Versions", + "crossLanguageDefinitionId": "Qumulo.Storage.Versions", + "valueType": { + "$id": "71", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "72", + "kind": "enumvalue", + "name": "v2_stable", + "value": "2024-06-19", + "valueType": { + "$id": "73", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "70" + }, + "doc": "The 2024-06-19 Stable API version.", + "decorators": [] + } + ], + "namespace": "Azure.ResourceManager.Qumulo", + "doc": "The available API versions.", + "isFixed": true, + "isFlags": false, + "usage": "ApiVersionEnum", + "decorators": [] + } + ], + "models": [ + { + "$id": "74", + "kind": "model", + "name": "FileSystemResource", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResource", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Concrete tracked resource types can be created by aliasing this type using a specific property type.", + "decorators": [], + "baseModel": { + "$id": "75", + "kind": "model", + "name": "TrackedResource", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.TrackedResource", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'", + "decorators": [], + "baseModel": { + "$id": "76", + "kind": "model", + "name": "Resource", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Resource", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Common fields that are returned in the response for all Azure Resource Manager resources", + "decorators": [], + "properties": [ + { + "$id": "77", + "kind": "property", + "name": "id", + "serializedName": "id", + "doc": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "type": { + "$id": "78", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Resource.id", + "serializationOptions": { + "$id": "79", + "json": { + "$id": "80", + "name": "id" + } + } + }, + { + "$id": "81", + "kind": "property", + "name": "name", + "serializedName": "name", + "doc": "The name of the resource", + "type": { + "$id": "82", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Resource.name", + "serializationOptions": { + "$id": "83", + "json": { + "$id": "84", + "name": "name" + } + } + }, + { + "$id": "85", + "kind": "property", + "name": "type", + "serializedName": "type", + "doc": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"", + "type": { + "$id": "86", + "kind": "string", + "name": "armResourceType", + "crossLanguageDefinitionId": "Azure.Core.armResourceType", + "baseType": { + "$id": "87", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Resource.type", + "serializationOptions": { + "$id": "88", + "json": { + "$id": "89", + "name": "type" + } + } + }, + { + "$id": "90", + "kind": "property", + "name": "systemData", + "serializedName": "systemData", + "doc": "Azure Resource Manager metadata containing createdBy and modifiedBy information.", + "type": { + "$id": "91", + "kind": "model", + "name": "SystemData", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.SystemData", + "usage": "Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Metadata pertaining to creation and last modification of the resource.", + "decorators": [], + "properties": [ + { + "$id": "92", + "kind": "property", + "name": "createdBy", + "serializedName": "createdBy", + "doc": "The identity that created the resource.", + "type": { + "$id": "93", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.SystemData.createdBy", + "serializationOptions": { + "$id": "94", + "json": { + "$id": "95", + "name": "createdBy" + } + } + }, + { + "$id": "96", + "kind": "property", + "name": "createdByType", + "serializedName": "createdByType", + "doc": "The type of identity that created the resource.", + "type": { + "$ref": "40" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.SystemData.createdByType", + "serializationOptions": { + "$id": "97", + "json": { + "$id": "98", + "name": "createdByType" + } + } + }, + { + "$id": "99", + "kind": "property", + "name": "createdAt", + "serializedName": "createdAt", + "doc": "The timestamp of resource creation (UTC).", + "type": { + "$id": "100", + "kind": "utcDateTime", + "name": "utcDateTime", + "encode": "rfc3339", + "wireType": { + "$id": "101", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.utcDateTime", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.SystemData.createdAt", + "serializationOptions": { + "$id": "102", + "json": { + "$id": "103", + "name": "createdAt" + } + } + }, + { + "$id": "104", + "kind": "property", + "name": "lastModifiedBy", + "serializedName": "lastModifiedBy", + "doc": "The identity that last modified the resource.", + "type": { + "$id": "105", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.SystemData.lastModifiedBy", + "serializationOptions": { + "$id": "106", + "json": { + "$id": "107", + "name": "lastModifiedBy" + } + } + }, + { + "$id": "108", + "kind": "property", + "name": "lastModifiedByType", + "serializedName": "lastModifiedByType", + "doc": "The type of identity that last modified the resource.", + "type": { + "$ref": "40" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.SystemData.lastModifiedByType", + "serializationOptions": { + "$id": "109", + "json": { + "$id": "110", + "name": "lastModifiedByType" + } + } + }, + { + "$id": "111", + "kind": "property", + "name": "lastModifiedAt", + "serializedName": "lastModifiedAt", + "doc": "The timestamp of resource last modification (UTC)", + "type": { + "$id": "112", + "kind": "utcDateTime", + "name": "utcDateTime", + "encode": "rfc3339", + "wireType": { + "$id": "113", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.utcDateTime", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.SystemData.lastModifiedAt", + "serializationOptions": { + "$id": "114", + "json": { + "$id": "115", + "name": "lastModifiedAt" + } + } + } + ] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Resource.systemData", + "serializationOptions": { + "$id": "116", + "json": { + "$id": "117", + "name": "systemData" + } + } + } + ] + }, + "properties": [ + { + "$id": "118", + "kind": "property", + "name": "tags", + "serializedName": "tags", + "doc": "Resource tags.", + "type": { + "$id": "119", + "kind": "dict", + "keyType": { + "$id": "120", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "valueType": { + "$id": "121", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.TrackedResource.tags", + "serializationOptions": { + "$id": "122", + "json": { + "$id": "123", + "name": "tags" + } + } + }, + { + "$id": "124", + "kind": "property", + "name": "location", + "serializedName": "location", + "doc": "The geo-location where the resource lives", + "type": { + "$id": "125", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.TrackedResource.location", + "serializationOptions": { + "$id": "126", + "json": { + "$id": "127", + "name": "location" + } + } + } + ] + }, + "properties": [ + { + "$id": "128", + "kind": "property", + "name": "properties", + "serializedName": "properties", + "doc": "The resource-specific properties for this resource.", + "type": { + "$id": "129", + "kind": "model", + "name": "FileSystemResourceProperties", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceProperties", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Properties specific to the Qumulo File System resource", + "decorators": [], + "properties": [ + { + "$id": "130", + "kind": "property", + "name": "marketplaceDetails", + "serializedName": "marketplaceDetails", + "doc": "Marketplace details", + "type": { + "$id": "131", + "kind": "model", + "name": "MarketplaceDetails", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "LiftrBase.MarketplaceDetails", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "MarketplaceDetails of Qumulo FileSystem resource", + "decorators": [], + "properties": [ + { + "$id": "132", + "kind": "property", + "name": "marketplaceSubscriptionId", + "serializedName": "marketplaceSubscriptionId", + "doc": "Marketplace Subscription Id", + "type": { + "$id": "133", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.MarketplaceDetails.marketplaceSubscriptionId", + "serializationOptions": { + "$id": "134", + "json": { + "$id": "135", + "name": "marketplaceSubscriptionId" + } + } + }, + { + "$id": "136", + "kind": "property", + "name": "planId", + "serializedName": "planId", + "doc": "Plan Id", + "type": { + "$id": "137", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.MarketplaceDetails.planId", + "serializationOptions": { + "$id": "138", + "json": { + "$id": "139", + "name": "planId" + } + } + }, + { + "$id": "140", + "kind": "property", + "name": "offerId", + "serializedName": "offerId", + "doc": "Offer Id", + "type": { + "$id": "141", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.MarketplaceDetails.offerId", + "serializationOptions": { + "$id": "142", + "json": { + "$id": "143", + "name": "offerId" + } + } + }, + { + "$id": "144", + "kind": "property", + "name": "publisherId", + "serializedName": "publisherId", + "doc": "Publisher Id", + "type": { + "$id": "145", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.MarketplaceDetails.publisherId", + "serializationOptions": { + "$id": "146", + "json": { + "$id": "147", + "name": "publisherId" + } + } + }, + { + "$id": "148", + "kind": "property", + "name": "termUnit", + "serializedName": "termUnit", + "doc": "Term Unit", + "type": { + "$id": "149", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.MarketplaceDetails.termUnit", + "serializationOptions": { + "$id": "150", + "json": { + "$id": "151", + "name": "termUnit" + } + } + }, + { + "$id": "152", + "kind": "property", + "name": "marketplaceSubscriptionStatus", + "serializedName": "marketplaceSubscriptionStatus", + "doc": "Marketplace subscription status", + "type": { + "$ref": "2" + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.MarketplaceDetails.marketplaceSubscriptionStatus", + "serializationOptions": { + "$id": "153", + "json": { + "$id": "154", + "name": "marketplaceSubscriptionStatus" + } + } + } + ] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceProperties.marketplaceDetails", + "serializationOptions": { + "$id": "155", + "json": { + "$id": "156", + "name": "marketplaceDetails" + } + } + }, + { + "$id": "157", + "kind": "property", + "name": "provisioningState", + "serializedName": "provisioningState", + "doc": "Provisioning State of the resource", + "type": { + "$ref": "12" + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceProperties.provisioningState", + "serializationOptions": { + "$id": "158", + "json": { + "$id": "159", + "name": "provisioningState" + } + } + }, + { + "$id": "160", + "kind": "property", + "name": "storageSku", + "serializedName": "storageSku", + "doc": "Storage Sku", + "type": { + "$id": "161", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceProperties.storageSku", + "serializationOptions": { + "$id": "162", + "json": { + "$id": "163", + "name": "storageSku" + } + } + }, + { + "$id": "164", + "kind": "property", + "name": "userDetails", + "serializedName": "userDetails", + "doc": "User Details", + "type": { + "$id": "165", + "kind": "model", + "name": "UserDetails", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "LiftrBase.UserDetails", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "User Details of Qumulo FileSystem resource", + "decorators": [], + "properties": [ + { + "$id": "166", + "kind": "property", + "name": "email", + "serializedName": "email", + "doc": "User Email", + "type": { + "$id": "167", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.UserDetails.email", + "serializationOptions": { + "$id": "168", + "json": { + "$id": "169", + "name": "email" + } + } + } + ] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceProperties.userDetails", + "serializationOptions": { + "$id": "170", + "json": { + "$id": "171", + "name": "userDetails" + } + } + }, + { + "$id": "172", + "kind": "property", + "name": "delegatedSubnetId", + "serializedName": "delegatedSubnetId", + "doc": "Delegated subnet id for Vnet injection", + "type": { + "$id": "173", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceProperties.delegatedSubnetId", + "serializationOptions": { + "$id": "174", + "json": { + "$id": "175", + "name": "delegatedSubnetId" + } + } + }, + { + "$id": "176", + "kind": "property", + "name": "clusterLoginUrl", + "serializedName": "clusterLoginUrl", + "doc": "File system Id of the resource", + "type": { + "$id": "177", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceProperties.clusterLoginUrl", + "serializationOptions": { + "$id": "178", + "json": { + "$id": "179", + "name": "clusterLoginUrl" + } + } + }, + { + "$id": "180", + "kind": "property", + "name": "privateIPs", + "serializedName": "privateIPs", + "doc": "Private IPs of the resource", + "type": { + "$id": "181", + "kind": "array", + "name": "Array", + "valueType": { + "$id": "182", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceProperties.privateIPs", + "serializationOptions": { + "$id": "183", + "json": { + "$id": "184", + "name": "privateIPs" + } + } + }, + { + "$id": "185", + "kind": "property", + "name": "adminPassword", + "serializedName": "adminPassword", + "doc": "Initial administrator password of the resource", + "type": { + "$id": "186", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceProperties.adminPassword", + "serializationOptions": { + "$id": "187", + "json": { + "$id": "188", + "name": "adminPassword" + } + } + }, + { + "$id": "189", + "kind": "property", + "name": "availabilityZone", + "serializedName": "availabilityZone", + "doc": "Availability zone", + "type": { + "$id": "190", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceProperties.availabilityZone", + "serializationOptions": { + "$id": "191", + "json": { + "$id": "192", + "name": "availabilityZone" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResource.properties", + "serializationOptions": { + "$id": "193", + "json": { + "$id": "194", + "name": "properties" + } + } + }, + { + "$id": "195", + "kind": "property", + "name": "identity", + "serializedName": "identity", + "doc": "The managed service identities assigned to this resource.", + "type": { + "$id": "196", + "kind": "model", + "name": "ManagedServiceIdentity", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ManagedServiceIdentity", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Managed service identity (system assigned and/or user assigned identities)", + "decorators": [], + "properties": [ + { + "$id": "197", + "kind": "property", + "name": "principalId", + "serializedName": "principalId", + "doc": "The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "type": { + "$id": "198", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "199", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ManagedServiceIdentity.principalId", + "serializationOptions": { + "$id": "200", + "json": { + "$id": "201", + "name": "principalId" + } + } + }, + { + "$id": "202", + "kind": "property", + "name": "tenantId", + "serializedName": "tenantId", + "doc": "The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.", + "type": { + "$id": "203", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "204", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ManagedServiceIdentity.tenantId", + "serializationOptions": { + "$id": "205", + "json": { + "$id": "206", + "name": "tenantId" + } + } + }, + { + "$id": "207", + "kind": "property", + "name": "type", + "serializedName": "type", + "doc": "The type of managed identity assigned to this resource.", + "type": { + "$ref": "30" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ManagedServiceIdentity.type", + "serializationOptions": { + "$id": "208", + "json": { + "$id": "209", + "name": "type" + } + } + }, + { + "$id": "210", + "kind": "property", + "name": "userAssignedIdentities", + "serializedName": "userAssignedIdentities", + "doc": "The identities assigned to this resource by the user.", + "type": { + "$id": "211", + "kind": "dict", + "keyType": { + "$id": "212", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "valueType": { + "$id": "213", + "kind": "model", + "name": "UserAssignedIdentity", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.UserAssignedIdentity", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "User assigned identity properties", + "decorators": [], + "properties": [ + { + "$id": "214", + "kind": "property", + "name": "clientId", + "serializedName": "clientId", + "doc": "The client ID of the assigned identity.", + "type": { + "$id": "215", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "216", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.UserAssignedIdentity.clientId", + "serializationOptions": { + "$id": "217", + "json": { + "$id": "218", + "name": "clientId" + } + } + }, + { + "$id": "219", + "kind": "property", + "name": "principalId", + "serializedName": "principalId", + "doc": "The principal ID of the assigned identity.", + "type": { + "$id": "220", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "221", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.UserAssignedIdentity.principalId", + "serializationOptions": { + "$id": "222", + "json": { + "$id": "223", + "name": "principalId" + } + } + } + ] + }, + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ManagedServiceIdentity.userAssignedIdentities", + "serializationOptions": { + "$id": "224", + "json": { + "$id": "225", + "name": "userAssignedIdentities" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResource.identity", + "serializationOptions": { + "$id": "226", + "json": { + "$id": "227", + "name": "identity" + } + } + } + ] + }, + { + "$ref": "129" + }, + { + "$ref": "131" + }, + { + "$ref": "165" + }, + { + "$ref": "196" + }, + { + "$ref": "213" + }, + { + "$ref": "75" + }, + { + "$ref": "76" + }, + { + "$ref": "91" + }, + { + "$id": "228", + "kind": "model", + "name": "ErrorResponse", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorResponse", + "usage": "Error,Json,Exception", + "doc": "Common error response for all Azure Resource Manager APIs to return error details for failed operations.", + "decorators": [], + "properties": [ + { + "$id": "229", + "kind": "property", + "name": "error", + "serializedName": "error", + "doc": "The error object.", + "type": { + "$id": "230", + "kind": "model", + "name": "ErrorDetail", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorDetail", + "usage": "Json,Exception,LroPolling", + "doc": "The error detail.", + "decorators": [], + "properties": [ + { + "$id": "231", + "kind": "property", + "name": "code", + "serializedName": "code", + "doc": "The error code.", + "type": { + "$id": "232", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorDetail.code", + "serializationOptions": { + "$id": "233", + "json": { + "$id": "234", + "name": "code" + } + } + }, + { + "$id": "235", + "kind": "property", + "name": "message", + "serializedName": "message", + "doc": "The error message.", + "type": { + "$id": "236", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorDetail.message", + "serializationOptions": { + "$id": "237", + "json": { + "$id": "238", + "name": "message" + } + } + }, + { + "$id": "239", + "kind": "property", + "name": "target", + "serializedName": "target", + "doc": "The error target.", + "type": { + "$id": "240", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorDetail.target", + "serializationOptions": { + "$id": "241", + "json": { + "$id": "242", + "name": "target" + } + } + }, + { + "$id": "243", + "kind": "property", + "name": "details", + "serializedName": "details", + "doc": "The error details.", + "type": { + "$id": "244", + "kind": "array", + "name": "ArrayErrorDetail", + "valueType": { + "$ref": "230" + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorDetail.details", + "serializationOptions": { + "$id": "245", + "json": { + "$id": "246", + "name": "details" + } + } + }, + { + "$id": "247", + "kind": "property", + "name": "additionalInfo", + "serializedName": "additionalInfo", + "doc": "The error additional info.", + "type": { + "$id": "248", + "kind": "array", + "name": "ArrayErrorAdditionalInfo", + "valueType": { + "$id": "249", + "kind": "model", + "name": "ErrorAdditionalInfo", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo", + "usage": "Json,Exception,LroPolling", + "doc": "The resource management error additional info.", + "decorators": [], + "properties": [ + { + "$id": "250", + "kind": "property", + "name": "type", + "serializedName": "type", + "doc": "The additional info type.", + "type": { + "$id": "251", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo.type", + "serializationOptions": { + "$id": "252", + "json": { + "$id": "253", + "name": "type" + } + } + }, + { + "$id": "254", + "kind": "property", + "name": "info", + "serializedName": "info", + "doc": "The additional info.", + "type": { + "$id": "255", + "kind": "model", + "name": "ErrorAdditionalInfoInfo", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo.info.anonymous", + "usage": "Json,Exception,LroPolling", + "decorators": [], + "properties": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo.info", + "serializationOptions": { + "$id": "256", + "json": { + "$id": "257", + "name": "info" + } + } + } + ] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorDetail.additionalInfo", + "serializationOptions": { + "$id": "258", + "json": { + "$id": "259", + "name": "additionalInfo" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorResponse.error", + "serializationOptions": { + "$id": "260", + "json": { + "$id": "261", + "name": "error" + } + } + } + ] + }, + { + "$ref": "230" + }, + { + "$ref": "249" + }, + { + "$ref": "255" + }, + { + "$id": "262", + "kind": "model", + "name": "ArmOperationStatusResourceProvisioningState", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "Azure.ResourceManager.ArmOperationStatus", + "usage": "LroPolling", + "doc": "Standard Azure Resource Manager operation status response", + "decorators": [], + "properties": [ + { + "$id": "263", + "kind": "property", + "name": "status", + "serializedName": "status", + "doc": "The operation status", + "type": { + "$ref": "50" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.ArmOperationStatus.status", + "serializationOptions": { + "$id": "264", + "json": { + "$id": "265", + "name": "status" + } + } + }, + { + "$id": "266", + "kind": "property", + "name": "name", + "serializedName": "name", + "doc": "The name of the operationStatus resource", + "type": { + "$id": "267", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.ArmOperationStatus.name", + "serializationOptions": { + "$id": "268", + "json": { + "$id": "269", + "name": "name" + } + } + }, + { + "$id": "270", + "kind": "property", + "name": "startTime", + "serializedName": "startTime", + "doc": "Operation start time", + "type": { + "$id": "271", + "kind": "utcDateTime", + "name": "utcDateTime", + "encode": "rfc3339", + "wireType": { + "$id": "272", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.utcDateTime", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.ArmOperationStatus.startTime", + "serializationOptions": { + "$id": "273", + "json": { + "$id": "274", + "name": "startTime" + } + } + }, + { + "$id": "275", + "kind": "property", + "name": "endTime", + "serializedName": "endTime", + "doc": "Operation complete time", + "type": { + "$id": "276", + "kind": "utcDateTime", + "name": "utcDateTime", + "encode": "rfc3339", + "wireType": { + "$id": "277", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.utcDateTime", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.ArmOperationStatus.endTime", + "serializationOptions": { + "$id": "278", + "json": { + "$id": "279", + "name": "endTime" + } + } + }, + { + "$id": "280", + "kind": "property", + "name": "percentComplete", + "serializedName": "percentComplete", + "doc": "The progress made toward completing the operation", + "type": { + "$id": "281", + "kind": "float64", + "name": "float64", + "crossLanguageDefinitionId": "TypeSpec.float64", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.ArmOperationStatus.percentComplete", + "serializationOptions": { + "$id": "282", + "json": { + "$id": "283", + "name": "percentComplete" + } + } + }, + { + "$id": "284", + "kind": "property", + "name": "error", + "serializedName": "error", + "doc": "Errors that occurred if the operation ended with Canceled or Failed status", + "type": { + "$ref": "230" + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.ArmOperationStatus.error", + "serializationOptions": { + "$id": "285", + "json": { + "$id": "286", + "name": "error" + } + } + } + ] + }, + { + "$id": "287", + "kind": "model", + "name": "FileSystemResourceUpdate", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceUpdate", + "usage": "Input,Json", + "doc": "The type used for update operations of the FileSystemResource.", + "decorators": [], + "properties": [ + { + "$id": "288", + "kind": "property", + "name": "identity", + "serializedName": "identity", + "doc": "The managed service identities assigned to this resource.", + "type": { + "$ref": "196" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceUpdate.identity", + "serializationOptions": { + "$id": "289", + "json": { + "$id": "290", + "name": "identity" + } + } + }, + { + "$id": "291", + "kind": "property", + "name": "tags", + "serializedName": "tags", + "doc": "Resource tags.", + "type": { + "$id": "292", + "kind": "dict", + "keyType": { + "$id": "293", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "valueType": { + "$id": "294", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceUpdate.tags", + "serializationOptions": { + "$id": "295", + "json": { + "$id": "296", + "name": "tags" + } + } + }, + { + "$id": "297", + "kind": "property", + "name": "properties", + "serializedName": "properties", + "doc": "The updatable properties of the FileSystemResource.", + "type": { + "$id": "298", + "kind": "model", + "name": "FileSystemResourceUpdateProperties", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceUpdateProperties", + "usage": "Input,Json", + "doc": "The updatable properties of the FileSystemResource.", + "decorators": [], + "properties": [ + { + "$id": "299", + "kind": "property", + "name": "marketplaceDetails", + "serializedName": "marketplaceDetails", + "doc": "Marketplace details", + "type": { + "$ref": "131" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceUpdateProperties.marketplaceDetails", + "serializationOptions": { + "$id": "300", + "json": { + "$id": "301", + "name": "marketplaceDetails" + } + } + }, + { + "$id": "302", + "kind": "property", + "name": "userDetails", + "serializedName": "userDetails", + "doc": "User Details", + "type": { + "$ref": "165" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceUpdateProperties.userDetails", + "serializationOptions": { + "$id": "303", + "json": { + "$id": "304", + "name": "userDetails" + } + } + }, + { + "$id": "305", + "kind": "property", + "name": "delegatedSubnetId", + "serializedName": "delegatedSubnetId", + "doc": "Delegated subnet id for Vnet injection", + "type": { + "$id": "306", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceUpdateProperties.delegatedSubnetId", + "serializationOptions": { + "$id": "307", + "json": { + "$id": "308", + "name": "delegatedSubnetId" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "LiftrBase.Storage.FileSystemResourceUpdate.properties", + "serializationOptions": { + "$id": "309", + "json": { + "$id": "310", + "name": "properties" + } + } + } + ] + }, + { + "$ref": "298" + }, + { + "$id": "311", + "kind": "model", + "name": "FileSystemResourceListResult", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "Azure.ResourceManager.ResourceListResult", + "usage": "Output,Json", + "doc": "The response of a FileSystemResource list operation.", + "decorators": [], + "properties": [ + { + "$id": "312", + "kind": "property", + "name": "value", + "serializedName": "value", + "doc": "The FileSystemResource items on this page", + "type": { + "$id": "313", + "kind": "array", + "name": "ArrayFileSystemResource", + "valueType": { + "$ref": "74" + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.ResourceListResult.value", + "serializationOptions": { + "$id": "314", + "json": { + "$id": "315", + "name": "value" + } + } + }, + { + "$id": "316", + "kind": "property", + "name": "nextLink", + "serializedName": "nextLink", + "doc": "The link to the next page of items", + "type": { + "$id": "317", + "kind": "url", + "name": "ResourceLocation", + "crossLanguageDefinitionId": "TypeSpec.Rest.ResourceLocation", + "baseType": { + "$id": "318", + "kind": "url", + "name": "url", + "crossLanguageDefinitionId": "TypeSpec.url", + "decorators": [] + }, + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.ResourceListResult.nextLink", + "serializationOptions": { + "$id": "319", + "json": { + "$id": "320", + "name": "nextLink" + } + } + } + ] + }, + { + "$id": "321", + "kind": "model", + "name": "OperationListResult", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.OperationListResult", + "usage": "Output,Json", + "doc": "A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results.", + "decorators": [], + "properties": [ + { + "$id": "322", + "kind": "property", + "name": "value", + "serializedName": "value", + "doc": "The Operation items on this page", + "type": { + "$id": "323", + "kind": "array", + "name": "ArrayOperation", + "valueType": { + "$id": "324", + "kind": "model", + "name": "Operation", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Operation", + "usage": "Output,Json", + "doc": "Details of a REST API operation, returned from the Resource Provider Operations API", + "decorators": [], + "properties": [ + { + "$id": "325", + "kind": "property", + "name": "name", + "serializedName": "name", + "doc": "The name of the operation, as per Resource-Based Access Control (RBAC). Examples: \"Microsoft.Compute/virtualMachines/write\", \"Microsoft.Compute/virtualMachines/capture/action\"", + "type": { + "$id": "326", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Operation.name", + "serializationOptions": { + "$id": "327", + "json": { + "$id": "328", + "name": "name" + } + } + }, + { + "$id": "329", + "kind": "property", + "name": "isDataAction", + "serializedName": "isDataAction", + "doc": "Whether the operation applies to data-plane. This is \"true\" for data-plane operations and \"false\" for Azure Resource Manager/control-plane operations.", + "type": { + "$id": "330", + "kind": "boolean", + "name": "boolean", + "crossLanguageDefinitionId": "TypeSpec.boolean", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Operation.isDataAction", + "serializationOptions": { + "$id": "331", + "json": { + "$id": "332", + "name": "isDataAction" + } + } + }, + { + "$id": "333", + "kind": "property", + "name": "display", + "serializedName": "display", + "doc": "Localized display information for this particular operation.", + "type": { + "$id": "334", + "kind": "model", + "name": "OperationDisplay", + "namespace": "Azure.ResourceManager.Qumulo", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.OperationDisplay", + "usage": "Output,Json", + "doc": "Localized display information for and operation.", + "decorators": [], + "properties": [ + { + "$id": "335", + "kind": "property", + "name": "provider", + "serializedName": "provider", + "doc": "The localized friendly form of the resource provider name, e.g. \"Microsoft Monitoring Insights\" or \"Microsoft Compute\".", + "type": { + "$id": "336", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.OperationDisplay.provider", + "serializationOptions": { + "$id": "337", + "json": { + "$id": "338", + "name": "provider" + } + } + }, + { + "$id": "339", + "kind": "property", + "name": "resource", + "serializedName": "resource", + "doc": "The localized friendly name of the resource type related to this operation. E.g. \"Virtual Machines\" or \"Job Schedule Collections\".", + "type": { + "$id": "340", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.OperationDisplay.resource", + "serializationOptions": { + "$id": "341", + "json": { + "$id": "342", + "name": "resource" + } + } + }, + { + "$id": "343", + "kind": "property", + "name": "operation", + "serializedName": "operation", + "doc": "The concise, localized friendly name for the operation; suitable for dropdowns. E.g. \"Create or Update Virtual Machine\", \"Restart Virtual Machine\".", + "type": { + "$id": "344", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.OperationDisplay.operation", + "serializationOptions": { + "$id": "345", + "json": { + "$id": "346", + "name": "operation" + } + } + }, + { + "$id": "347", + "kind": "property", + "name": "description", + "serializedName": "description", + "doc": "The short, localized friendly description of the operation; suitable for tool tips and detailed views.", + "type": { + "$id": "348", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.OperationDisplay.description", + "serializationOptions": { + "$id": "349", + "json": { + "$id": "350", + "name": "description" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Operation.display", + "serializationOptions": { + "$id": "351", + "json": { + "$id": "352", + "name": "display" + } + } + }, + { + "$id": "353", + "kind": "property", + "name": "origin", + "serializedName": "origin", + "doc": "The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is \"user,system\"", + "type": { + "$ref": "58" + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Operation.origin", + "serializationOptions": { + "$id": "354", + "json": { + "$id": "355", + "name": "origin" + } + } + }, + { + "$id": "356", + "kind": "property", + "name": "actionType", + "serializedName": "actionType", + "doc": "Extensible enum. Indicates the action type. \"Internal\" refers to actions that are for internal only APIs.", + "type": { + "$ref": "66" + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Operation.actionType", + "serializationOptions": { + "$id": "357", + "json": { + "$id": "358", + "name": "actionType" + } + } + } + ] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.OperationListResult.value", + "serializationOptions": { + "$id": "359", + "json": { + "$id": "360", + "name": "value" + } + } + }, + { + "$id": "361", + "kind": "property", + "name": "nextLink", + "serializedName": "nextLink", + "doc": "The link to the next page of items", + "type": { + "$id": "362", + "kind": "url", + "name": "ResourceLocation", + "crossLanguageDefinitionId": "TypeSpec.Rest.ResourceLocation", + "baseType": { + "$id": "363", + "kind": "url", + "name": "url", + "crossLanguageDefinitionId": "TypeSpec.url", + "decorators": [] + }, + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.OperationListResult.nextLink", + "serializationOptions": { + "$id": "364", + "json": { + "$id": "365", + "name": "nextLink" + } + } + } + ] + }, + { + "$ref": "324" + }, + { + "$ref": "334" + } + ], + "clients": [ + { + "$id": "366", + "name": "StorageClient", + "namespace": "Azure.ResourceManager.Qumulo", + "operations": [], + "parameters": [ + { + "$id": "367", + "name": "endpoint", + "nameInRequest": "endpoint", + "doc": "Service host", + "type": { + "$id": "368", + "kind": "url", + "name": "url", + "crossLanguageDefinitionId": "TypeSpec.url" + }, + "location": "Uri", + "isApiVersion": false, + "isContentType": false, + "isRequired": true, + "isEndpoint": true, + "skipUrlEncoding": false, + "explode": false, + "kind": "Client", + "defaultValue": { + "$id": "369", + "type": { + "$id": "370", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "https://management.azure.com" + } + } + ], + "decorators": [], + "crossLanguageDefinitionId": "Qumulo.Storage" + }, + { + "$id": "371", + "name": "Operations", + "namespace": "Azure.ResourceManager.Qumulo", + "operations": [ + { + "$id": "372", + "name": "list", + "resourceName": "Operations", + "doc": "List the operations for the provider", + "accessibility": "public", + "parameters": [ + { + "$id": "373", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "374", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "375", + "type": { + "$id": "376", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-06-19" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "377", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "378", + "kind": "constant", + "valueType": { + "$id": "379", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "value": "application/json", + "decorators": [] + }, + "location": "Header", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Constant", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "380", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "321" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "GET", + "uri": "{endpoint}", + "path": "/providers/Qumulo.Storage/operations", + "bufferResponse": true, + "paging": { + "$id": "381", + "itemPropertySegments": [ + "value" + ], + "nextLink": { + "$id": "382", + "responseSegments": [ + "nextLink" + ], + "responseLocation": "Body" + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Azure.ResourceManager.Operations.list", + "decorators": [], + "examples": [ + { + "$id": "383", + "kind": "http", + "name": "Operations_List", + "description": "Operations_List", + "filePath": "2024-06-19/Operations_List_MaximumSet_Gen.json", + "parameters": [ + { + "$id": "384", + "parameter": { + "$ref": "373" + }, + "value": { + "$id": "385", + "kind": "string", + "type": { + "$ref": "374" + }, + "value": "2024-06-19" + } + } + ], + "responses": [ + { + "$id": "386", + "response": { + "$ref": "380" + }, + "statusCode": 200, + "bodyValue": { + "$id": "387", + "kind": "model", + "type": { + "$ref": "321" + }, + "value": { + "$id": "388", + "value": { + "$id": "389", + "kind": "array", + "type": { + "$ref": "323" + }, + "value": [ + { + "$id": "390", + "kind": "model", + "type": { + "$ref": "324" + }, + "value": { + "$id": "391", + "name": { + "$id": "392", + "kind": "string", + "type": { + "$ref": "326" + }, + "value": "melhpzamnyx" + }, + "isDataAction": { + "$id": "393", + "kind": "boolean", + "type": { + "$ref": "330" + }, + "value": true + }, + "display": { + "$id": "394", + "kind": "model", + "type": { + "$ref": "334" + }, + "value": { + "$id": "395", + "provider": { + "$id": "396", + "kind": "string", + "type": { + "$ref": "336" + }, + "value": "ilyrhd" + }, + "resource": { + "$id": "397", + "kind": "string", + "type": { + "$ref": "340" + }, + "value": "vjz" + }, + "operation": { + "$id": "398", + "kind": "string", + "type": { + "$ref": "344" + }, + "value": "ayfoeuuyhtwjafroqzimyujr" + }, + "description": { + "$id": "399", + "kind": "string", + "type": { + "$ref": "348" + }, + "value": "vodhl" + } + } + }, + "origin": { + "$id": "400", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "user" + }, + "actionType": { + "$id": "401", + "kind": "string", + "type": { + "$ref": "66" + }, + "value": "Internal" + } + } + } + ] + }, + "nextLink": { + "$id": "402", + "kind": "string", + "type": { + "$ref": "362" + }, + "value": "vxtunikmzmz" + } + } + } + } + ] + }, + { + "$id": "403", + "kind": "http", + "name": "Operations_List_MinimumSet_Gen", + "description": "Operations_List_MinimumSet_Gen", + "filePath": "2024-06-19/Operations_List_MinimumSet_Gen.json", + "parameters": [ + { + "$id": "404", + "parameter": { + "$ref": "373" + }, + "value": { + "$id": "405", + "kind": "string", + "type": { + "$ref": "374" + }, + "value": "2024-06-19" + } + } + ], + "responses": [ + { + "$id": "406", + "response": { + "$ref": "380" + }, + "statusCode": 200, + "bodyValue": { + "$id": "407", + "kind": "model", + "type": { + "$ref": "321" + }, + "value": { + "$id": "408" + } + } + } + ] + } + ] + } + ], + "parent": "StorageClient", + "parameters": [ + { + "$id": "409", + "name": "endpoint", + "nameInRequest": "endpoint", + "doc": "Service host", + "type": { + "$id": "410", + "kind": "url", + "name": "url", + "crossLanguageDefinitionId": "TypeSpec.url" + }, + "location": "Uri", + "isApiVersion": false, + "isContentType": false, + "isRequired": true, + "isEndpoint": true, + "skipUrlEncoding": false, + "explode": false, + "kind": "Client", + "defaultValue": { + "$id": "411", + "type": { + "$id": "412", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "https://management.azure.com" + } + } + ], + "decorators": [], + "crossLanguageDefinitionId": "Qumulo.Storage.Operations" + }, + { + "$id": "413", + "name": "FileSystems", + "namespace": "Azure.ResourceManager.Qumulo", + "operations": [ + { + "$id": "414", + "name": "get", + "resourceName": "FileSystemResource", + "doc": "Get a FileSystemResource", + "accessibility": "public", + "parameters": [ + { + "$id": "415", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "416", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "417", + "type": { + "$id": "418", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-06-19" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "419", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "420", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "421", + "name": "resourceGroupName", + "nameInRequest": "resourceGroupName", + "doc": "The name of the resource group. The name is case insensitive.", + "type": { + "$id": "422", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "423", + "name": "fileSystemName", + "nameInRequest": "fileSystemName", + "doc": "Name of the File System resource", + "type": { + "$id": "424", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "425", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "426", + "kind": "constant", + "valueType": { + "$id": "427", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "value": "application/json", + "decorators": [] + }, + "location": "Header", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Constant", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "428", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "74" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "GET", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Qumulo.Storage/fileSystems/{fileSystemName}", + "bufferResponse": true, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Qumulo.Storage.FileSystems.get", + "decorators": [], + "examples": [ + { + "$id": "429", + "kind": "http", + "name": "FileSystems_Get", + "description": "FileSystems_Get", + "filePath": "2024-06-19/FileSystems_Get_MaximumSet_Gen.json", + "parameters": [ + { + "$id": "430", + "parameter": { + "$ref": "415" + }, + "value": { + "$id": "431", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "2024-06-19" + } + }, + { + "$id": "432", + "parameter": { + "$ref": "419" + }, + "value": { + "$id": "433", + "kind": "string", + "type": { + "$ref": "420" + }, + "value": "382E8C7A-AC80-4D70-8580-EFE99537B9B7" + } + }, + { + "$id": "434", + "parameter": { + "$ref": "421" + }, + "value": { + "$id": "435", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "rgQumulo" + } + }, + { + "$id": "436", + "parameter": { + "$ref": "423" + }, + "value": { + "$id": "437", + "kind": "string", + "type": { + "$ref": "424" + }, + "value": "sihbehcisdqtqqyfiewiiaphgh" + } + } + ], + "responses": [ + { + "$id": "438", + "response": { + "$ref": "428" + }, + "statusCode": 200, + "bodyValue": { + "$id": "439", + "kind": "model", + "type": { + "$ref": "74" + }, + "value": { + "$id": "440", + "properties": { + "$id": "441", + "kind": "model", + "type": { + "$ref": "129" + }, + "value": { + "$id": "442", + "marketplaceDetails": { + "$id": "443", + "kind": "model", + "type": { + "$ref": "131" + }, + "value": { + "$id": "444", + "marketplaceSubscriptionId": { + "$id": "445", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "xaqtkloiyovmexqhn" + }, + "planId": { + "$id": "446", + "kind": "string", + "type": { + "$ref": "137" + }, + "value": "fwtpz" + }, + "offerId": { + "$id": "447", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "s" + }, + "publisherId": { + "$id": "448", + "kind": "string", + "type": { + "$ref": "145" + }, + "value": "czxcfrwodazyaft" + }, + "termUnit": { + "$id": "449", + "kind": "string", + "type": { + "$ref": "149" + }, + "value": "cfwwczmygsimcyvoclcw" + }, + "marketplaceSubscriptionStatus": { + "$id": "450", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "PendingFulfillmentStart" + } + } + }, + "provisioningState": { + "$id": "451", + "kind": "string", + "type": { + "$ref": "12" + }, + "value": "Accepted" + }, + "storageSku": { + "$id": "452", + "kind": "string", + "type": { + "$ref": "161" + }, + "value": "yhyzby" + }, + "userDetails": { + "$id": "453", + "kind": "model", + "type": { + "$ref": "165" + }, + "value": { + "$id": "454" + } + }, + "delegatedSubnetId": { + "$id": "455", + "kind": "string", + "type": { + "$ref": "173" + }, + "value": "jykmxrf" + }, + "clusterLoginUrl": { + "$id": "456", + "kind": "string", + "type": { + "$ref": "177" + }, + "value": "ykaynsjvhihdthkkvvodjrgc" + }, + "privateIPs": { + "$id": "457", + "kind": "array", + "type": { + "$ref": "181" + }, + "value": [ + { + "$id": "458", + "kind": "string", + "type": { + "$ref": "182" + }, + "value": "gzken" + } + ] + }, + "availabilityZone": { + "$id": "459", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "eqdvbdiuwmhhzqzmksmwllpddqquwt" + } + } + }, + "identity": { + "$id": "460", + "kind": "model", + "type": { + "$ref": "196" + }, + "value": { + "$id": "461", + "principalId": { + "$id": "462", + "kind": "string", + "type": { + "$ref": "198" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "tenantId": { + "$id": "463", + "kind": "string", + "type": { + "$ref": "203" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "type": { + "$id": "464", + "kind": "string", + "type": { + "$ref": "30" + }, + "value": "None" + }, + "userAssignedIdentities": { + "$id": "465", + "kind": "dict", + "type": { + "$ref": "211" + }, + "value": { + "$id": "466", + "key7679": { + "$id": "467", + "kind": "model", + "type": { + "$ref": "213" + }, + "value": { + "$id": "468", + "principalId": { + "$id": "469", + "kind": "string", + "type": { + "$ref": "220" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "clientId": { + "$id": "470", + "kind": "string", + "type": { + "$ref": "215" + }, + "value": "11111111-1111-1111-1111-111111111111" + } + } + } + } + } + } + }, + "tags": { + "$id": "471", + "kind": "dict", + "type": { + "$ref": "119" + }, + "value": { + "$id": "472", + "key7090": { + "$id": "473", + "kind": "string", + "type": { + "$ref": "121" + }, + "value": "rurrdiaqp" + } + } + }, + "location": { + "$id": "474", + "kind": "string", + "type": { + "$ref": "125" + }, + "value": "pnb" + }, + "id": { + "$id": "475", + "kind": "string", + "type": { + "$ref": "78" + }, + "value": "rfta" + }, + "name": { + "$id": "476", + "kind": "string", + "type": { + "$ref": "82" + }, + "value": "stftolw" + }, + "type": { + "$id": "477", + "kind": "string", + "type": { + "$ref": "86" + }, + "value": "wj" + }, + "systemData": { + "$id": "478", + "kind": "model", + "type": { + "$ref": "91" + }, + "value": { + "$id": "479", + "createdBy": { + "$id": "480", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "usnkckwkizihezb" + }, + "createdByType": { + "$id": "481", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "User" + }, + "createdAt": { + "$id": "482", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2024-03-21T08:11:54.895Z" + }, + "lastModifiedBy": { + "$id": "483", + "kind": "string", + "type": { + "$ref": "105" + }, + "value": "yjsiqdgtsmycxlncjceemlucn" + }, + "lastModifiedByType": { + "$id": "484", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "User" + }, + "lastModifiedAt": { + "$id": "485", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2024-03-21T08:11:54.895Z" + } + } + } + } + } + } + ] + }, + { + "$id": "486", + "kind": "http", + "name": "FileSystems_Get_MinimumSet_Gen", + "description": "FileSystems_Get_MinimumSet_Gen", + "filePath": "2024-06-19/FileSystems_Get_MinimumSet_Gen.json", + "parameters": [ + { + "$id": "487", + "parameter": { + "$ref": "415" + }, + "value": { + "$id": "488", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "2024-06-19" + } + }, + { + "$id": "489", + "parameter": { + "$ref": "423" + }, + "value": { + "$id": "490", + "kind": "string", + "type": { + "$ref": "424" + }, + "value": "aaaaaaaaaaaaaaaaa" + } + }, + { + "$id": "491", + "parameter": { + "$ref": "421" + }, + "value": { + "$id": "492", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "rgQumulo" + } + }, + { + "$id": "493", + "parameter": { + "$ref": "419" + }, + "value": { + "$id": "494", + "kind": "string", + "type": { + "$ref": "420" + }, + "value": "aaaaaaa" + } + } + ], + "responses": [ + { + "$id": "495", + "response": { + "$ref": "428" + }, + "statusCode": 200, + "bodyValue": { + "$id": "496", + "kind": "model", + "type": { + "$ref": "74" + }, + "value": { + "$id": "497", + "name": { + "$id": "498", + "kind": "string", + "type": { + "$ref": "82" + }, + "value": "aaaaa" + }, + "id": { + "$id": "499", + "kind": "string", + "type": { + "$ref": "78" + }, + "value": "aaaaaaaaaaaaaaaaa" + }, + "location": { + "$id": "500", + "kind": "string", + "type": { + "$ref": "125" + }, + "value": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa" + }, + "properties": { + "$id": "501", + "kind": "model", + "type": { + "$ref": "129" + }, + "value": { + "$id": "502", + "delegatedSubnetId": { + "$id": "503", + "kind": "string", + "type": { + "$ref": "173" + }, + "value": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + }, + "marketplaceDetails": { + "$id": "504", + "kind": "model", + "type": { + "$ref": "131" + }, + "value": { + "$id": "505", + "marketplaceSubscriptionId": { + "$id": "506", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "aaaaaaaaaaaaaaaaa" + }, + "marketplaceSubscriptionStatus": { + "$id": "507", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "PendingFulfillmentStart" + }, + "offerId": { + "$id": "508", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "aaaaaaaaa" + }, + "planId": { + "$id": "509", + "kind": "string", + "type": { + "$ref": "137" + }, + "value": "aaaaaaa" + }, + "termUnit": { + "$id": "510", + "kind": "string", + "type": { + "$ref": "149" + }, + "value": "zxv" + } + } + }, + "provisioningState": { + "$id": "511", + "kind": "string", + "type": { + "$ref": "12" + }, + "value": "Accepted" + }, + "storageSku": { + "$id": "512", + "kind": "string", + "type": { + "$ref": "161" + }, + "value": "Standard" + }, + "userDetails": { + "$id": "513", + "kind": "model", + "type": { + "$ref": "165" + }, + "value": { + "$id": "514" + } + } + } + } + } + } + } + ] + } + ] + }, + { + "$id": "515", + "name": "createOrUpdate", + "resourceName": "FileSystemResource", + "doc": "Create a FileSystemResource", + "accessibility": "public", + "parameters": [ + { + "$id": "516", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "517", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "518", + "type": { + "$id": "519", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-06-19" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "520", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "521", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "522", + "name": "resourceGroupName", + "nameInRequest": "resourceGroupName", + "doc": "The name of the resource group. The name is case insensitive.", + "type": { + "$id": "523", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "524", + "name": "fileSystemName", + "nameInRequest": "fileSystemName", + "doc": "Name of the File System resource", + "type": { + "$id": "525", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "526", + "name": "contentType", + "nameInRequest": "Content-Type", + "doc": "Body parameter's content type. Known values are application/json", + "type": { + "$id": "527", + "kind": "constant", + "valueType": { + "$id": "528", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "value": "application/json", + "decorators": [] + }, + "location": "Header", + "isApiVersion": false, + "isContentType": true, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Constant", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "529", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "530", + "kind": "constant", + "valueType": { + "$id": "531", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "value": "application/json", + "decorators": [] + }, + "location": "Header", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Constant", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "532", + "name": "resource", + "nameInRequest": "resource", + "doc": "Resource create parameters.", + "type": { + "$ref": "74" + }, + "location": "Body", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "533", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "74" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + }, + { + "$id": "534", + "statusCodes": [ + 201 + ], + "bodyType": { + "$ref": "74" + }, + "headers": [ + { + "$id": "535", + "name": "azureAsyncOperation", + "nameInResponse": "Azure-AsyncOperation", + "doc": "A link to the status monitor", + "type": { + "$id": "536", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + } + }, + { + "$id": "537", + "name": "retryAfter", + "nameInResponse": "Retry-After", + "doc": "The Retry-After header can indicate how long the client should wait before polling the operation status.", + "type": { + "$id": "538", + "kind": "int32", + "name": "int32", + "crossLanguageDefinitionId": "TypeSpec.int32", + "decorators": [] + } + } + ], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "PUT", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Qumulo.Storage/fileSystems/{fileSystemName}", + "requestMediaTypes": [ + "application/json" + ], + "bufferResponse": true, + "longRunning": { + "$id": "539", + "finalStateVia": 0, + "finalResponse": { + "$id": "540", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "74" + } + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Qumulo.Storage.FileSystems.createOrUpdate", + "decorators": [], + "examples": [ + { + "$id": "541", + "kind": "http", + "name": "FileSystems_CreateOrUpdate", + "description": "FileSystems_CreateOrUpdate", + "filePath": "2024-06-19/FileSystems_CreateOrUpdate_MaximumSet_Gen.json", + "parameters": [ + { + "$id": "542", + "parameter": { + "$ref": "516" + }, + "value": { + "$id": "543", + "kind": "string", + "type": { + "$ref": "517" + }, + "value": "2024-06-19" + } + }, + { + "$id": "544", + "parameter": { + "$ref": "520" + }, + "value": { + "$id": "545", + "kind": "string", + "type": { + "$ref": "521" + }, + "value": "382E8C7A-AC80-4D70-8580-EFE99537B9B7" + } + }, + { + "$id": "546", + "parameter": { + "$ref": "522" + }, + "value": { + "$id": "547", + "kind": "string", + "type": { + "$ref": "523" + }, + "value": "rgQumulo" + } + }, + { + "$id": "548", + "parameter": { + "$ref": "524" + }, + "value": { + "$id": "549", + "kind": "string", + "type": { + "$ref": "525" + }, + "value": "hfcmtgaes" + } + }, + { + "$id": "550", + "parameter": { + "$ref": "532" + }, + "value": { + "$id": "551", + "kind": "model", + "type": { + "$ref": "74" + }, + "value": { + "$id": "552", + "properties": { + "$id": "553", + "kind": "model", + "type": { + "$ref": "129" + }, + "value": { + "$id": "554", + "marketplaceDetails": { + "$id": "555", + "kind": "model", + "type": { + "$ref": "131" + }, + "value": { + "$id": "556", + "marketplaceSubscriptionId": { + "$id": "557", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "xaqtkloiyovmexqhn" + }, + "planId": { + "$id": "558", + "kind": "string", + "type": { + "$ref": "137" + }, + "value": "fwtpz" + }, + "offerId": { + "$id": "559", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "s" + }, + "publisherId": { + "$id": "560", + "kind": "string", + "type": { + "$ref": "145" + }, + "value": "czxcfrwodazyaft" + }, + "termUnit": { + "$id": "561", + "kind": "string", + "type": { + "$ref": "149" + }, + "value": "cfwwczmygsimcyvoclcw" + }, + "marketplaceSubscriptionStatus": { + "$id": "562", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "PendingFulfillmentStart" + } + } + }, + "storageSku": { + "$id": "563", + "kind": "string", + "type": { + "$ref": "161" + }, + "value": "yhyzby" + }, + "userDetails": { + "$id": "564", + "kind": "model", + "type": { + "$ref": "165" + }, + "value": { + "$id": "565", + "email": { + "$id": "566", + "kind": "string", + "type": { + "$ref": "167" + }, + "value": "aqsnzyroo" + } + } + }, + "delegatedSubnetId": { + "$id": "567", + "kind": "string", + "type": { + "$ref": "173" + }, + "value": "jykmxrf" + }, + "clusterLoginUrl": { + "$id": "568", + "kind": "string", + "type": { + "$ref": "177" + }, + "value": "ykaynsjvhihdthkkvvodjrgc" + }, + "privateIPs": { + "$id": "569", + "kind": "array", + "type": { + "$ref": "181" + }, + "value": [ + { + "$id": "570", + "kind": "string", + "type": { + "$ref": "182" + }, + "value": "gzken" + } + ] + }, + "adminPassword": { + "$id": "571", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "fakeTestSecretPlaceholder" + }, + "availabilityZone": { + "$id": "572", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "eqdvbdiuwmhhzqzmksmwllpddqquwt" + } + } + }, + "identity": { + "$id": "573", + "kind": "model", + "type": { + "$ref": "196" + }, + "value": { + "$id": "574", + "type": { + "$id": "575", + "kind": "string", + "type": { + "$ref": "30" + }, + "value": "None" + }, + "userAssignedIdentities": { + "$id": "576", + "kind": "dict", + "type": { + "$ref": "211" + }, + "value": { + "$id": "577", + "key7679": { + "$id": "578", + "kind": "model", + "type": { + "$ref": "213" + }, + "value": { + "$id": "579" + } + } + } + } + } + }, + "tags": { + "$id": "580", + "kind": "dict", + "type": { + "$ref": "119" + }, + "value": { + "$id": "581", + "key7090": { + "$id": "582", + "kind": "string", + "type": { + "$ref": "121" + }, + "value": "rurrdiaqp" + } + } + }, + "location": { + "$id": "583", + "kind": "string", + "type": { + "$ref": "125" + }, + "value": "pnb" + } + } + } + } + ], + "responses": [ + { + "$id": "584", + "response": { + "$ref": "533" + }, + "statusCode": 200, + "bodyValue": { + "$id": "585", + "kind": "model", + "type": { + "$ref": "74" + }, + "value": { + "$id": "586", + "properties": { + "$id": "587", + "kind": "model", + "type": { + "$ref": "129" + }, + "value": { + "$id": "588", + "marketplaceDetails": { + "$id": "589", + "kind": "model", + "type": { + "$ref": "131" + }, + "value": { + "$id": "590", + "marketplaceSubscriptionId": { + "$id": "591", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "xaqtkloiyovmexqhn" + }, + "planId": { + "$id": "592", + "kind": "string", + "type": { + "$ref": "137" + }, + "value": "fwtpz" + }, + "offerId": { + "$id": "593", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "s" + }, + "publisherId": { + "$id": "594", + "kind": "string", + "type": { + "$ref": "145" + }, + "value": "czxcfrwodazyaft" + }, + "termUnit": { + "$id": "595", + "kind": "string", + "type": { + "$ref": "149" + }, + "value": "cfwwczmygsimcyvoclcw" + }, + "marketplaceSubscriptionStatus": { + "$id": "596", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "PendingFulfillmentStart" + } + } + }, + "provisioningState": { + "$id": "597", + "kind": "string", + "type": { + "$ref": "12" + }, + "value": "Accepted" + }, + "storageSku": { + "$id": "598", + "kind": "string", + "type": { + "$ref": "161" + }, + "value": "yhyzby" + }, + "userDetails": { + "$id": "599", + "kind": "model", + "type": { + "$ref": "165" + }, + "value": { + "$id": "600" + } + }, + "delegatedSubnetId": { + "$id": "601", + "kind": "string", + "type": { + "$ref": "173" + }, + "value": "jykmxrf" + }, + "clusterLoginUrl": { + "$id": "602", + "kind": "string", + "type": { + "$ref": "177" + }, + "value": "ykaynsjvhihdthkkvvodjrgc" + }, + "privateIPs": { + "$id": "603", + "kind": "array", + "type": { + "$ref": "181" + }, + "value": [ + { + "$id": "604", + "kind": "string", + "type": { + "$ref": "182" + }, + "value": "gzken" + } + ] + }, + "availabilityZone": { + "$id": "605", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "eqdvbdiuwmhhzqzmksmwllpddqquwt" + } + } + }, + "identity": { + "$id": "606", + "kind": "model", + "type": { + "$ref": "196" + }, + "value": { + "$id": "607", + "principalId": { + "$id": "608", + "kind": "string", + "type": { + "$ref": "198" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "tenantId": { + "$id": "609", + "kind": "string", + "type": { + "$ref": "203" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "type": { + "$id": "610", + "kind": "string", + "type": { + "$ref": "30" + }, + "value": "None" + }, + "userAssignedIdentities": { + "$id": "611", + "kind": "dict", + "type": { + "$ref": "211" + }, + "value": { + "$id": "612", + "key7679": { + "$id": "613", + "kind": "model", + "type": { + "$ref": "213" + }, + "value": { + "$id": "614", + "principalId": { + "$id": "615", + "kind": "string", + "type": { + "$ref": "220" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "clientId": { + "$id": "616", + "kind": "string", + "type": { + "$ref": "215" + }, + "value": "11111111-1111-1111-1111-111111111111" + } + } + } + } + } + } + }, + "tags": { + "$id": "617", + "kind": "dict", + "type": { + "$ref": "119" + }, + "value": { + "$id": "618", + "key7090": { + "$id": "619", + "kind": "string", + "type": { + "$ref": "121" + }, + "value": "rurrdiaqp" + } + } + }, + "location": { + "$id": "620", + "kind": "string", + "type": { + "$ref": "125" + }, + "value": "pnb" + }, + "id": { + "$id": "621", + "kind": "string", + "type": { + "$ref": "78" + }, + "value": "rfta" + }, + "name": { + "$id": "622", + "kind": "string", + "type": { + "$ref": "82" + }, + "value": "stftolw" + }, + "type": { + "$id": "623", + "kind": "string", + "type": { + "$ref": "86" + }, + "value": "wj" + }, + "systemData": { + "$id": "624", + "kind": "model", + "type": { + "$ref": "91" + }, + "value": { + "$id": "625", + "createdBy": { + "$id": "626", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "usnkckwkizihezb" + }, + "createdByType": { + "$id": "627", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "User" + }, + "createdAt": { + "$id": "628", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2024-03-21T08:11:54.895Z" + }, + "lastModifiedBy": { + "$id": "629", + "kind": "string", + "type": { + "$ref": "105" + }, + "value": "yjsiqdgtsmycxlncjceemlucn" + }, + "lastModifiedByType": { + "$id": "630", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "User" + }, + "lastModifiedAt": { + "$id": "631", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2024-03-21T08:11:54.895Z" + } + } + } + } + } + }, + { + "$id": "632", + "response": { + "$ref": "534" + }, + "statusCode": 201, + "bodyValue": { + "$id": "633", + "kind": "model", + "type": { + "$ref": "74" + }, + "value": { + "$id": "634", + "properties": { + "$id": "635", + "kind": "model", + "type": { + "$ref": "129" + }, + "value": { + "$id": "636", + "marketplaceDetails": { + "$id": "637", + "kind": "model", + "type": { + "$ref": "131" + }, + "value": { + "$id": "638", + "marketplaceSubscriptionId": { + "$id": "639", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "xaqtkloiyovmexqhn" + }, + "planId": { + "$id": "640", + "kind": "string", + "type": { + "$ref": "137" + }, + "value": "fwtpz" + }, + "offerId": { + "$id": "641", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "s" + }, + "publisherId": { + "$id": "642", + "kind": "string", + "type": { + "$ref": "145" + }, + "value": "czxcfrwodazyaft" + }, + "termUnit": { + "$id": "643", + "kind": "string", + "type": { + "$ref": "149" + }, + "value": "cfwwczmygsimcyvoclcw" + }, + "marketplaceSubscriptionStatus": { + "$id": "644", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "PendingFulfillmentStart" + } + } + }, + "provisioningState": { + "$id": "645", + "kind": "string", + "type": { + "$ref": "12" + }, + "value": "Accepted" + }, + "storageSku": { + "$id": "646", + "kind": "string", + "type": { + "$ref": "161" + }, + "value": "yhyzby" + }, + "userDetails": { + "$id": "647", + "kind": "model", + "type": { + "$ref": "165" + }, + "value": { + "$id": "648" + } + }, + "delegatedSubnetId": { + "$id": "649", + "kind": "string", + "type": { + "$ref": "173" + }, + "value": "jykmxrf" + }, + "clusterLoginUrl": { + "$id": "650", + "kind": "string", + "type": { + "$ref": "177" + }, + "value": "ykaynsjvhihdthkkvvodjrgc" + }, + "privateIPs": { + "$id": "651", + "kind": "array", + "type": { + "$ref": "181" + }, + "value": [ + { + "$id": "652", + "kind": "string", + "type": { + "$ref": "182" + }, + "value": "gzken" + } + ] + }, + "availabilityZone": { + "$id": "653", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "eqdvbdiuwmhhzqzmksmwllpddqquwt" + } + } + }, + "identity": { + "$id": "654", + "kind": "model", + "type": { + "$ref": "196" + }, + "value": { + "$id": "655", + "principalId": { + "$id": "656", + "kind": "string", + "type": { + "$ref": "198" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "tenantId": { + "$id": "657", + "kind": "string", + "type": { + "$ref": "203" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "type": { + "$id": "658", + "kind": "string", + "type": { + "$ref": "30" + }, + "value": "None" + }, + "userAssignedIdentities": { + "$id": "659", + "kind": "dict", + "type": { + "$ref": "211" + }, + "value": { + "$id": "660", + "key7679": { + "$id": "661", + "kind": "model", + "type": { + "$ref": "213" + }, + "value": { + "$id": "662", + "principalId": { + "$id": "663", + "kind": "string", + "type": { + "$ref": "220" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "clientId": { + "$id": "664", + "kind": "string", + "type": { + "$ref": "215" + }, + "value": "11111111-1111-1111-1111-111111111111" + } + } + } + } + } + } + }, + "tags": { + "$id": "665", + "kind": "dict", + "type": { + "$ref": "119" + }, + "value": { + "$id": "666", + "key7090": { + "$id": "667", + "kind": "string", + "type": { + "$ref": "121" + }, + "value": "rurrdiaqp" + } + } + }, + "location": { + "$id": "668", + "kind": "string", + "type": { + "$ref": "125" + }, + "value": "pnb" + }, + "id": { + "$id": "669", + "kind": "string", + "type": { + "$ref": "78" + }, + "value": "rfta" + }, + "name": { + "$id": "670", + "kind": "string", + "type": { + "$ref": "82" + }, + "value": "stftolw" + }, + "type": { + "$id": "671", + "kind": "string", + "type": { + "$ref": "86" + }, + "value": "wj" + }, + "systemData": { + "$id": "672", + "kind": "model", + "type": { + "$ref": "91" + }, + "value": { + "$id": "673", + "createdBy": { + "$id": "674", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "usnkckwkizihezb" + }, + "createdByType": { + "$id": "675", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "User" + }, + "createdAt": { + "$id": "676", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2024-03-21T08:11:54.895Z" + }, + "lastModifiedBy": { + "$id": "677", + "kind": "string", + "type": { + "$ref": "105" + }, + "value": "yjsiqdgtsmycxlncjceemlucn" + }, + "lastModifiedByType": { + "$id": "678", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "User" + }, + "lastModifiedAt": { + "$id": "679", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2024-03-21T08:11:54.895Z" + } + } + } + } + } + } + ] + }, + { + "$id": "680", + "kind": "http", + "name": "FileSystems_CreateOrUpdate_MinimumSet_Gen", + "description": "FileSystems_CreateOrUpdate_MinimumSet_Gen", + "filePath": "2024-06-19/FileSystems_CreateOrUpdate_MinimumSet_Gen.json", + "parameters": [ + { + "$id": "681", + "parameter": { + "$ref": "516" + }, + "value": { + "$id": "682", + "kind": "string", + "type": { + "$ref": "517" + }, + "value": "2024-06-19" + } + }, + { + "$id": "683", + "parameter": { + "$ref": "524" + }, + "value": { + "$id": "684", + "kind": "string", + "type": { + "$ref": "525" + }, + "value": "aaaaaaaa" + } + }, + { + "$id": "685", + "parameter": { + "$ref": "532" + }, + "value": { + "$id": "686", + "kind": "model", + "type": { + "$ref": "74" + }, + "value": { + "$id": "687", + "location": { + "$id": "688", + "kind": "string", + "type": { + "$ref": "125" + }, + "value": "aaaaaaaaaaaaaaaaaaaaaaaaa" + }, + "properties": { + "$id": "689", + "kind": "model", + "type": { + "$ref": "129" + }, + "value": { + "$id": "690", + "adminPassword": { + "$id": "691", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "fakeTestSecretPlaceholder" + }, + "delegatedSubnetId": { + "$id": "692", + "kind": "string", + "type": { + "$ref": "173" + }, + "value": "aaaaaaaaaa" + }, + "marketplaceDetails": { + "$id": "693", + "kind": "model", + "type": { + "$ref": "131" + }, + "value": { + "$id": "694", + "marketplaceSubscriptionId": { + "$id": "695", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "aaaaaaaaaaaaa" + }, + "marketplaceSubscriptionStatus": { + "$id": "696", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "PendingFulfillmentStart" + }, + "offerId": { + "$id": "697", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "aaaaaaaaaaaaaaaaaaaaaaaaa" + }, + "planId": { + "$id": "698", + "kind": "string", + "type": { + "$ref": "137" + }, + "value": "aaaaaa" + } + } + }, + "storageSku": { + "$id": "699", + "kind": "string", + "type": { + "$ref": "161" + }, + "value": "Standard" + }, + "userDetails": { + "$id": "700", + "kind": "model", + "type": { + "$ref": "165" + }, + "value": { + "$id": "701", + "email": { + "$id": "702", + "kind": "string", + "type": { + "$ref": "167" + }, + "value": "viptslwulnpaupfljvnjeq" + } + } + } + } + } + } + } + }, + { + "$id": "703", + "parameter": { + "$ref": "522" + }, + "value": { + "$id": "704", + "kind": "string", + "type": { + "$ref": "523" + }, + "value": "rgopenapi" + } + }, + { + "$id": "705", + "parameter": { + "$ref": "520" + }, + "value": { + "$id": "706", + "kind": "string", + "type": { + "$ref": "521" + }, + "value": "aaaaaaaaaaaaaaaaaaaaaaaa" + } + } + ], + "responses": [ + { + "$id": "707", + "response": { + "$ref": "533" + }, + "statusCode": 200, + "bodyValue": { + "$id": "708", + "kind": "model", + "type": { + "$ref": "74" + }, + "value": { + "$id": "709", + "id": { + "$id": "710", + "kind": "string", + "type": { + "$ref": "78" + }, + "value": "aaaaaaaaaaaaaaaaa" + }, + "location": { + "$id": "711", + "kind": "string", + "type": { + "$ref": "125" + }, + "value": "aaaaaaaaa" + }, + "properties": { + "$id": "712", + "kind": "model", + "type": { + "$ref": "129" + }, + "value": { + "$id": "713", + "delegatedSubnetId": { + "$id": "714", + "kind": "string", + "type": { + "$ref": "173" + }, + "value": "aaaaaaaaaa" + }, + "marketplaceDetails": { + "$id": "715", + "kind": "model", + "type": { + "$ref": "131" + }, + "value": { + "$id": "716", + "marketplaceSubscriptionId": { + "$id": "717", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "aaaaaaaaaaaaa" + }, + "marketplaceSubscriptionStatus": { + "$id": "718", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "PendingFulfillmentStart" + }, + "offerId": { + "$id": "719", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "aaaaaaaaaaaaaaaaaaaaaaaaa" + }, + "planId": { + "$id": "720", + "kind": "string", + "type": { + "$ref": "137" + }, + "value": "aaaaaa" + }, + "publisherId": { + "$id": "721", + "kind": "string", + "type": { + "$ref": "145" + }, + "value": "aa" + } + } + }, + "provisioningState": { + "$id": "722", + "kind": "string", + "type": { + "$ref": "12" + }, + "value": "Accepted" + }, + "storageSku": { + "$id": "723", + "kind": "string", + "type": { + "$ref": "161" + }, + "value": "Standard" + }, + "userDetails": { + "$id": "724", + "kind": "model", + "type": { + "$ref": "165" + }, + "value": { + "$id": "725" + } + } + } + } + } + } + }, + { + "$id": "726", + "response": { + "$ref": "534" + }, + "statusCode": 201, + "bodyValue": { + "$id": "727", + "kind": "model", + "type": { + "$ref": "74" + }, + "value": { + "$id": "728", + "id": { + "$id": "729", + "kind": "string", + "type": { + "$ref": "78" + }, + "value": "aaaaaaaaaaaaaaaaa" + }, + "location": { + "$id": "730", + "kind": "string", + "type": { + "$ref": "125" + }, + "value": "aaaaaaaaa" + }, + "properties": { + "$id": "731", + "kind": "model", + "type": { + "$ref": "129" + }, + "value": { + "$id": "732", + "delegatedSubnetId": { + "$id": "733", + "kind": "string", + "type": { + "$ref": "173" + }, + "value": "aaaaaaaaaa" + }, + "marketplaceDetails": { + "$id": "734", + "kind": "model", + "type": { + "$ref": "131" + }, + "value": { + "$id": "735", + "marketplaceSubscriptionId": { + "$id": "736", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "aaaaaaaaaaaaa" + }, + "marketplaceSubscriptionStatus": { + "$id": "737", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "PendingFulfillmentStart" + }, + "offerId": { + "$id": "738", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "aaaaaaaaaaaaaaaaaaaaaaaaa" + }, + "planId": { + "$id": "739", + "kind": "string", + "type": { + "$ref": "137" + }, + "value": "aaaaaa" + }, + "publisherId": { + "$id": "740", + "kind": "string", + "type": { + "$ref": "145" + }, + "value": "aa" + } + } + }, + "provisioningState": { + "$id": "741", + "kind": "string", + "type": { + "$ref": "12" + }, + "value": "Accepted" + }, + "storageSku": { + "$id": "742", + "kind": "string", + "type": { + "$ref": "161" + }, + "value": "Standard" + }, + "userDetails": { + "$id": "743", + "kind": "model", + "type": { + "$ref": "165" + }, + "value": { + "$id": "744" + } + } + } + } + } + } + } + ] + } + ] + }, + { + "$id": "745", + "name": "update", + "resourceName": "FileSystemResource", + "doc": "Update a FileSystemResource", + "accessibility": "public", + "parameters": [ + { + "$id": "746", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "747", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "748", + "type": { + "$id": "749", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-06-19" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "750", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "751", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "752", + "name": "resourceGroupName", + "nameInRequest": "resourceGroupName", + "doc": "The name of the resource group. The name is case insensitive.", + "type": { + "$id": "753", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "754", + "name": "fileSystemName", + "nameInRequest": "fileSystemName", + "doc": "Name of the File System resource", + "type": { + "$id": "755", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "756", + "name": "contentType", + "nameInRequest": "Content-Type", + "doc": "Body parameter's content type. Known values are application/json", + "type": { + "$id": "757", + "kind": "constant", + "valueType": { + "$id": "758", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "value": "application/json", + "decorators": [] + }, + "location": "Header", + "isApiVersion": false, + "isContentType": true, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Constant", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "759", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "760", + "kind": "constant", + "valueType": { + "$id": "761", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "value": "application/json", + "decorators": [] + }, + "location": "Header", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Constant", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "762", + "name": "properties", + "nameInRequest": "properties", + "doc": "The resource properties to be updated.", + "type": { + "$ref": "287" + }, + "location": "Body", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "763", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "74" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "PATCH", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Qumulo.Storage/fileSystems/{fileSystemName}", + "requestMediaTypes": [ + "application/json" + ], + "bufferResponse": true, + "generateProtocolMethod": true, + "generateConvenienceMethod": false, + "crossLanguageDefinitionId": "Qumulo.Storage.FileSystems.update", + "decorators": [], + "examples": [ + { + "$id": "764", + "kind": "http", + "name": "FileSystems_Update", + "description": "FileSystems_Update", + "filePath": "2024-06-19/FileSystems_Update_MaximumSet_Gen.json", + "parameters": [ + { + "$id": "765", + "parameter": { + "$ref": "746" + }, + "value": { + "$id": "766", + "kind": "string", + "type": { + "$ref": "747" + }, + "value": "2024-06-19" + } + }, + { + "$id": "767", + "parameter": { + "$ref": "750" + }, + "value": { + "$id": "768", + "kind": "string", + "type": { + "$ref": "751" + }, + "value": "382E8C7A-AC80-4D70-8580-EFE99537B9B7" + } + }, + { + "$id": "769", + "parameter": { + "$ref": "752" + }, + "value": { + "$id": "770", + "kind": "string", + "type": { + "$ref": "753" + }, + "value": "rgQumulo" + } + }, + { + "$id": "771", + "parameter": { + "$ref": "754" + }, + "value": { + "$id": "772", + "kind": "string", + "type": { + "$ref": "755" + }, + "value": "ahpixnvykleksjlr" + } + }, + { + "$id": "773", + "parameter": { + "$ref": "762" + }, + "value": { + "$id": "774", + "kind": "model", + "type": { + "$ref": "287" + }, + "value": { + "$id": "775", + "identity": { + "$id": "776", + "kind": "model", + "type": { + "$ref": "196" + }, + "value": { + "$id": "777", + "type": { + "$id": "778", + "kind": "string", + "type": { + "$ref": "30" + }, + "value": "None" + }, + "userAssignedIdentities": { + "$id": "779", + "kind": "dict", + "type": { + "$ref": "211" + }, + "value": { + "$id": "780", + "key7679": { + "$id": "781", + "kind": "model", + "type": { + "$ref": "213" + }, + "value": { + "$id": "782" + } + } + } + } + } + }, + "tags": { + "$id": "783", + "kind": "dict", + "type": { + "$ref": "292" + }, + "value": { + "$id": "784", + "key357": { + "$id": "785", + "kind": "string", + "type": { + "$ref": "294" + }, + "value": "ztkkvhfia" + } + } + }, + "properties": { + "$id": "786", + "kind": "model", + "type": { + "$ref": "298" + }, + "value": { + "$id": "787", + "marketplaceDetails": { + "$id": "788", + "kind": "model", + "type": { + "$ref": "131" + }, + "value": { + "$id": "789", + "marketplaceSubscriptionId": { + "$id": "790", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "xaqtkloiyovmexqhn" + }, + "planId": { + "$id": "791", + "kind": "string", + "type": { + "$ref": "137" + }, + "value": "fwtpz" + }, + "offerId": { + "$id": "792", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "s" + }, + "publisherId": { + "$id": "793", + "kind": "string", + "type": { + "$ref": "145" + }, + "value": "czxcfrwodazyaft" + }, + "termUnit": { + "$id": "794", + "kind": "string", + "type": { + "$ref": "149" + }, + "value": "cfwwczmygsimcyvoclcw" + }, + "marketplaceSubscriptionStatus": { + "$id": "795", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "PendingFulfillmentStart" + } + } + }, + "userDetails": { + "$id": "796", + "kind": "model", + "type": { + "$ref": "165" + }, + "value": { + "$id": "797", + "email": { + "$id": "798", + "kind": "string", + "type": { + "$ref": "167" + }, + "value": "aqsnzyroo" + } + } + }, + "delegatedSubnetId": { + "$id": "799", + "kind": "string", + "type": { + "$ref": "306" + }, + "value": "bqaryqsjlackxphpmzffgoqsvm" + } + } + } + } + } + } + ], + "responses": [ + { + "$id": "800", + "response": { + "$ref": "763" + }, + "statusCode": 200, + "bodyValue": { + "$id": "801", + "kind": "model", + "type": { + "$ref": "74" + }, + "value": { + "$id": "802", + "properties": { + "$id": "803", + "kind": "model", + "type": { + "$ref": "129" + }, + "value": { + "$id": "804", + "marketplaceDetails": { + "$id": "805", + "kind": "model", + "type": { + "$ref": "131" + }, + "value": { + "$id": "806", + "marketplaceSubscriptionId": { + "$id": "807", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "xaqtkloiyovmexqhn" + }, + "planId": { + "$id": "808", + "kind": "string", + "type": { + "$ref": "137" + }, + "value": "fwtpz" + }, + "offerId": { + "$id": "809", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "s" + }, + "publisherId": { + "$id": "810", + "kind": "string", + "type": { + "$ref": "145" + }, + "value": "czxcfrwodazyaft" + }, + "termUnit": { + "$id": "811", + "kind": "string", + "type": { + "$ref": "149" + }, + "value": "cfwwczmygsimcyvoclcw" + }, + "marketplaceSubscriptionStatus": { + "$id": "812", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "PendingFulfillmentStart" + } + } + }, + "provisioningState": { + "$id": "813", + "kind": "string", + "type": { + "$ref": "12" + }, + "value": "Accepted" + }, + "storageSku": { + "$id": "814", + "kind": "string", + "type": { + "$ref": "161" + }, + "value": "yhyzby" + }, + "userDetails": { + "$id": "815", + "kind": "model", + "type": { + "$ref": "165" + }, + "value": { + "$id": "816" + } + }, + "delegatedSubnetId": { + "$id": "817", + "kind": "string", + "type": { + "$ref": "173" + }, + "value": "jykmxrf" + }, + "clusterLoginUrl": { + "$id": "818", + "kind": "string", + "type": { + "$ref": "177" + }, + "value": "ykaynsjvhihdthkkvvodjrgc" + }, + "privateIPs": { + "$id": "819", + "kind": "array", + "type": { + "$ref": "181" + }, + "value": [ + { + "$id": "820", + "kind": "string", + "type": { + "$ref": "182" + }, + "value": "gzken" + } + ] + }, + "availabilityZone": { + "$id": "821", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "eqdvbdiuwmhhzqzmksmwllpddqquwt" + } + } + }, + "identity": { + "$id": "822", + "kind": "model", + "type": { + "$ref": "196" + }, + "value": { + "$id": "823", + "principalId": { + "$id": "824", + "kind": "string", + "type": { + "$ref": "198" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "tenantId": { + "$id": "825", + "kind": "string", + "type": { + "$ref": "203" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "type": { + "$id": "826", + "kind": "string", + "type": { + "$ref": "30" + }, + "value": "None" + }, + "userAssignedIdentities": { + "$id": "827", + "kind": "dict", + "type": { + "$ref": "211" + }, + "value": { + "$id": "828", + "key7679": { + "$id": "829", + "kind": "model", + "type": { + "$ref": "213" + }, + "value": { + "$id": "830", + "principalId": { + "$id": "831", + "kind": "string", + "type": { + "$ref": "220" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "clientId": { + "$id": "832", + "kind": "string", + "type": { + "$ref": "215" + }, + "value": "11111111-1111-1111-1111-111111111111" + } + } + } + } + } + } + }, + "tags": { + "$id": "833", + "kind": "dict", + "type": { + "$ref": "119" + }, + "value": { + "$id": "834", + "key7090": { + "$id": "835", + "kind": "string", + "type": { + "$ref": "121" + }, + "value": "rurrdiaqp" + } + } + }, + "location": { + "$id": "836", + "kind": "string", + "type": { + "$ref": "125" + }, + "value": "pnb" + }, + "id": { + "$id": "837", + "kind": "string", + "type": { + "$ref": "78" + }, + "value": "rfta" + }, + "name": { + "$id": "838", + "kind": "string", + "type": { + "$ref": "82" + }, + "value": "stftolw" + }, + "type": { + "$id": "839", + "kind": "string", + "type": { + "$ref": "86" + }, + "value": "wj" + }, + "systemData": { + "$id": "840", + "kind": "model", + "type": { + "$ref": "91" + }, + "value": { + "$id": "841", + "createdBy": { + "$id": "842", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "usnkckwkizihezb" + }, + "createdByType": { + "$id": "843", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "User" + }, + "createdAt": { + "$id": "844", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2024-03-21T08:11:54.895Z" + }, + "lastModifiedBy": { + "$id": "845", + "kind": "string", + "type": { + "$ref": "105" + }, + "value": "yjsiqdgtsmycxlncjceemlucn" + }, + "lastModifiedByType": { + "$id": "846", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "User" + }, + "lastModifiedAt": { + "$id": "847", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2024-03-21T08:11:54.895Z" + } + } + } + } + } + } + ] + }, + { + "$id": "848", + "kind": "http", + "name": "FileSystems_Update_MinimumSet_Gen", + "description": "FileSystems_Update_MinimumSet_Gen", + "filePath": "2024-06-19/FileSystems_Update_MinimumSet_Gen.json", + "parameters": [ + { + "$id": "849", + "parameter": { + "$ref": "746" + }, + "value": { + "$id": "850", + "kind": "string", + "type": { + "$ref": "747" + }, + "value": "2024-06-19" + } + }, + { + "$id": "851", + "parameter": { + "$ref": "754" + }, + "value": { + "$id": "852", + "kind": "string", + "type": { + "$ref": "755" + }, + "value": "aaaaaaaaaaaaaaaaa" + } + }, + { + "$id": "853", + "parameter": { + "$ref": "762" + }, + "value": { + "$id": "854", + "kind": "model", + "type": { + "$ref": "287" + }, + "value": { + "$id": "855" + } + } + }, + { + "$id": "856", + "parameter": { + "$ref": "752" + }, + "value": { + "$id": "857", + "kind": "string", + "type": { + "$ref": "753" + }, + "value": "rgQumulo" + } + }, + { + "$id": "858", + "parameter": { + "$ref": "750" + }, + "value": { + "$id": "859", + "kind": "string", + "type": { + "$ref": "751" + }, + "value": "aaaaaaa" + } + } + ], + "responses": [ + { + "$id": "860", + "response": { + "$ref": "763" + }, + "statusCode": 200, + "bodyValue": { + "$id": "861", + "kind": "model", + "type": { + "$ref": "74" + }, + "value": { + "$id": "862", + "name": { + "$id": "863", + "kind": "string", + "type": { + "$ref": "82" + }, + "value": "aaaaa" + }, + "location": { + "$id": "864", + "kind": "string", + "type": { + "$ref": "125" + }, + "value": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa" + }, + "properties": { + "$id": "865", + "kind": "model", + "type": { + "$ref": "129" + }, + "value": { + "$id": "866", + "delegatedSubnetId": { + "$id": "867", + "kind": "string", + "type": { + "$ref": "173" + }, + "value": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + }, + "marketplaceDetails": { + "$id": "868", + "kind": "model", + "type": { + "$ref": "131" + }, + "value": { + "$id": "869", + "marketplaceSubscriptionId": { + "$id": "870", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "aaaaaaaaaaaaaaaaa" + }, + "marketplaceSubscriptionStatus": { + "$id": "871", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "PendingFulfillmentStart" + }, + "offerId": { + "$id": "872", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "aaaaaaaaa" + }, + "planId": { + "$id": "873", + "kind": "string", + "type": { + "$ref": "137" + }, + "value": "aaaaaaa" + } + } + }, + "provisioningState": { + "$id": "874", + "kind": "string", + "type": { + "$ref": "12" + }, + "value": "Accepted" + }, + "storageSku": { + "$id": "875", + "kind": "string", + "type": { + "$ref": "161" + }, + "value": "Standard" + }, + "userDetails": { + "$id": "876", + "kind": "model", + "type": { + "$ref": "165" + }, + "value": { + "$id": "877" + } + } + } + } + } + } + } + ] + } + ] + }, + { + "$id": "878", + "name": "delete", + "resourceName": "FileSystemResource", + "doc": "Delete a FileSystemResource", + "accessibility": "public", + "parameters": [ + { + "$id": "879", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "880", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "881", + "type": { + "$id": "882", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-06-19" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "883", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "884", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "885", + "name": "resourceGroupName", + "nameInRequest": "resourceGroupName", + "doc": "The name of the resource group. The name is case insensitive.", + "type": { + "$id": "886", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "887", + "name": "fileSystemName", + "nameInRequest": "fileSystemName", + "doc": "Name of the File System resource", + "type": { + "$id": "888", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "889", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "890", + "kind": "constant", + "valueType": { + "$id": "891", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "value": "application/json", + "decorators": [] + }, + "location": "Header", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Constant", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "892", + "statusCodes": [ + 202 + ], + "headers": [ + { + "$id": "893", + "name": "azureAsyncOperation", + "nameInResponse": "Azure-AsyncOperation", + "doc": "A link to the status monitor", + "type": { + "$id": "894", + "kind": "url", + "name": "ResourceLocation", + "crossLanguageDefinitionId": "TypeSpec.Rest.ResourceLocation", + "baseType": { + "$id": "895", + "kind": "url", + "name": "url", + "crossLanguageDefinitionId": "TypeSpec.url", + "decorators": [] + }, + "decorators": [] + } + }, + { + "$id": "896", + "name": "location", + "nameInResponse": "Location", + "doc": "The Location header contains the URL where the status of the long running operation can be checked.", + "type": { + "$id": "897", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + } + }, + { + "$id": "898", + "name": "retryAfter", + "nameInResponse": "Retry-After", + "doc": "The Retry-After header can indicate how long the client should wait before polling the operation status.", + "type": { + "$id": "899", + "kind": "int32", + "name": "int32", + "crossLanguageDefinitionId": "TypeSpec.int32", + "decorators": [] + } + } + ], + "isErrorResponse": false + }, + { + "$id": "900", + "statusCodes": [ + 204 + ], + "headers": [], + "isErrorResponse": false + } + ], + "httpMethod": "DELETE", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Qumulo.Storage/fileSystems/{fileSystemName}", + "bufferResponse": true, + "longRunning": { + "$id": "901", + "finalStateVia": 1, + "finalResponse": { + "$id": "902", + "statusCodes": [ + 204 + ] + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Qumulo.Storage.FileSystems.delete", + "decorators": [], + "examples": [ + { + "$id": "903", + "kind": "http", + "name": "FileSystems_Delete", + "description": "FileSystems_Delete", + "filePath": "2024-06-19/FileSystems_Delete_MaximumSet_Gen.json", + "parameters": [ + { + "$id": "904", + "parameter": { + "$ref": "879" + }, + "value": { + "$id": "905", + "kind": "string", + "type": { + "$ref": "880" + }, + "value": "2024-06-19" + } + }, + { + "$id": "906", + "parameter": { + "$ref": "883" + }, + "value": { + "$id": "907", + "kind": "string", + "type": { + "$ref": "884" + }, + "value": "382E8C7A-AC80-4D70-8580-EFE99537B9B7" + } + }, + { + "$id": "908", + "parameter": { + "$ref": "885" + }, + "value": { + "$id": "909", + "kind": "string", + "type": { + "$ref": "886" + }, + "value": "rgQumulo" + } + }, + { + "$id": "910", + "parameter": { + "$ref": "887" + }, + "value": { + "$id": "911", + "kind": "string", + "type": { + "$ref": "888" + }, + "value": "xoschzkccroahrykedlvbbnsddq" + } + } + ], + "responses": [ + { + "$id": "912", + "response": { + "$ref": "892" + }, + "statusCode": 202 + }, + { + "$id": "913", + "response": { + "$ref": "900" + }, + "statusCode": 204 + } + ] + }, + { + "$id": "914", + "kind": "http", + "name": "FileSystems_Delete_MinimumSet_Gen", + "description": "FileSystems_Delete_MinimumSet_Gen", + "filePath": "2024-06-19/FileSystems_Delete_MinimumSet_Gen.json", + "parameters": [ + { + "$id": "915", + "parameter": { + "$ref": "879" + }, + "value": { + "$id": "916", + "kind": "string", + "type": { + "$ref": "880" + }, + "value": "2024-06-19" + } + }, + { + "$id": "917", + "parameter": { + "$ref": "883" + }, + "value": { + "$id": "918", + "kind": "string", + "type": { + "$ref": "884" + }, + "value": "382E8C7A-AC80-4D70-8580-EFE99537B9B7" + } + }, + { + "$id": "919", + "parameter": { + "$ref": "885" + }, + "value": { + "$id": "920", + "kind": "string", + "type": { + "$ref": "886" + }, + "value": "rgQumulo" + } + }, + { + "$id": "921", + "parameter": { + "$ref": "887" + }, + "value": { + "$id": "922", + "kind": "string", + "type": { + "$ref": "888" + }, + "value": "jgtskkiplquyrlkaxvhdg" + } + } + ], + "responses": [ + { + "$id": "923", + "response": { + "$ref": "892" + }, + "statusCode": 202 + }, + { + "$id": "924", + "response": { + "$ref": "900" + }, + "statusCode": 204 + } + ] + } + ] + }, + { + "$id": "925", + "name": "listByResourceGroup", + "resourceName": "FileSystemResource", + "doc": "List FileSystemResource resources by resource group", + "accessibility": "public", + "parameters": [ + { + "$id": "926", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "927", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "928", + "type": { + "$id": "929", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-06-19" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "930", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "931", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "932", + "name": "resourceGroupName", + "nameInRequest": "resourceGroupName", + "doc": "The name of the resource group. The name is case insensitive.", + "type": { + "$id": "933", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "934", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "935", + "kind": "constant", + "valueType": { + "$id": "936", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "value": "application/json", + "decorators": [] + }, + "location": "Header", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Constant", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "937", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "311" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "GET", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Qumulo.Storage/fileSystems", + "bufferResponse": true, + "paging": { + "$id": "938", + "itemPropertySegments": [ + "value" + ], + "nextLink": { + "$id": "939", + "responseSegments": [ + "nextLink" + ], + "responseLocation": "Body" + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Qumulo.Storage.FileSystems.listByResourceGroup", + "decorators": [], + "examples": [ + { + "$id": "940", + "kind": "http", + "name": "FileSystems_ListByResourceGroup", + "description": "FileSystems_ListByResourceGroup", + "filePath": "2024-06-19/FileSystems_ListByResourceGroup_MaximumSet_Gen.json", + "parameters": [ + { + "$id": "941", + "parameter": { + "$ref": "926" + }, + "value": { + "$id": "942", + "kind": "string", + "type": { + "$ref": "927" + }, + "value": "2024-06-19" + } + }, + { + "$id": "943", + "parameter": { + "$ref": "930" + }, + "value": { + "$id": "944", + "kind": "string", + "type": { + "$ref": "931" + }, + "value": "382E8C7A-AC80-4D70-8580-EFE99537B9B7" + } + }, + { + "$id": "945", + "parameter": { + "$ref": "932" + }, + "value": { + "$id": "946", + "kind": "string", + "type": { + "$ref": "933" + }, + "value": "rgQumulo" + } + } + ], + "responses": [ + { + "$id": "947", + "response": { + "$ref": "937" + }, + "statusCode": 200, + "bodyValue": { + "$id": "948", + "kind": "model", + "type": { + "$ref": "311" + }, + "value": { + "$id": "949", + "value": { + "$id": "950", + "kind": "array", + "type": { + "$ref": "313" + }, + "value": [ + { + "$id": "951", + "kind": "model", + "type": { + "$ref": "74" + }, + "value": { + "$id": "952", + "properties": { + "$id": "953", + "kind": "model", + "type": { + "$ref": "129" + }, + "value": { + "$id": "954", + "marketplaceDetails": { + "$id": "955", + "kind": "model", + "type": { + "$ref": "131" + }, + "value": { + "$id": "956", + "marketplaceSubscriptionId": { + "$id": "957", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "xaqtkloiyovmexqhn" + }, + "planId": { + "$id": "958", + "kind": "string", + "type": { + "$ref": "137" + }, + "value": "fwtpz" + }, + "offerId": { + "$id": "959", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "s" + }, + "publisherId": { + "$id": "960", + "kind": "string", + "type": { + "$ref": "145" + }, + "value": "czxcfrwodazyaft" + }, + "termUnit": { + "$id": "961", + "kind": "string", + "type": { + "$ref": "149" + }, + "value": "cfwwczmygsimcyvoclcw" + }, + "marketplaceSubscriptionStatus": { + "$id": "962", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "PendingFulfillmentStart" + } + } + }, + "provisioningState": { + "$id": "963", + "kind": "string", + "type": { + "$ref": "12" + }, + "value": "Accepted" + }, + "storageSku": { + "$id": "964", + "kind": "string", + "type": { + "$ref": "161" + }, + "value": "yhyzby" + }, + "userDetails": { + "$id": "965", + "kind": "model", + "type": { + "$ref": "165" + }, + "value": { + "$id": "966" + } + }, + "delegatedSubnetId": { + "$id": "967", + "kind": "string", + "type": { + "$ref": "173" + }, + "value": "jykmxrf" + }, + "clusterLoginUrl": { + "$id": "968", + "kind": "string", + "type": { + "$ref": "177" + }, + "value": "ykaynsjvhihdthkkvvodjrgc" + }, + "privateIPs": { + "$id": "969", + "kind": "array", + "type": { + "$ref": "181" + }, + "value": [ + { + "$id": "970", + "kind": "string", + "type": { + "$ref": "182" + }, + "value": "gzken" + } + ] + }, + "availabilityZone": { + "$id": "971", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "eqdvbdiuwmhhzqzmksmwllpddqquwt" + } + } + }, + "identity": { + "$id": "972", + "kind": "model", + "type": { + "$ref": "196" + }, + "value": { + "$id": "973", + "principalId": { + "$id": "974", + "kind": "string", + "type": { + "$ref": "198" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "tenantId": { + "$id": "975", + "kind": "string", + "type": { + "$ref": "203" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "type": { + "$id": "976", + "kind": "string", + "type": { + "$ref": "30" + }, + "value": "None" + }, + "userAssignedIdentities": { + "$id": "977", + "kind": "dict", + "type": { + "$ref": "211" + }, + "value": { + "$id": "978", + "key7679": { + "$id": "979", + "kind": "model", + "type": { + "$ref": "213" + }, + "value": { + "$id": "980", + "principalId": { + "$id": "981", + "kind": "string", + "type": { + "$ref": "220" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "clientId": { + "$id": "982", + "kind": "string", + "type": { + "$ref": "215" + }, + "value": "11111111-1111-1111-1111-111111111111" + } + } + } + } + } + } + }, + "tags": { + "$id": "983", + "kind": "dict", + "type": { + "$ref": "119" + }, + "value": { + "$id": "984", + "key7090": { + "$id": "985", + "kind": "string", + "type": { + "$ref": "121" + }, + "value": "rurrdiaqp" + } + } + }, + "location": { + "$id": "986", + "kind": "string", + "type": { + "$ref": "125" + }, + "value": "pnb" + }, + "id": { + "$id": "987", + "kind": "string", + "type": { + "$ref": "78" + }, + "value": "rfta" + }, + "name": { + "$id": "988", + "kind": "string", + "type": { + "$ref": "82" + }, + "value": "stftolw" + }, + "type": { + "$id": "989", + "kind": "string", + "type": { + "$ref": "86" + }, + "value": "wj" + }, + "systemData": { + "$id": "990", + "kind": "model", + "type": { + "$ref": "91" + }, + "value": { + "$id": "991", + "createdBy": { + "$id": "992", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "usnkckwkizihezb" + }, + "createdByType": { + "$id": "993", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "User" + }, + "createdAt": { + "$id": "994", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2024-03-21T08:11:54.895Z" + }, + "lastModifiedBy": { + "$id": "995", + "kind": "string", + "type": { + "$ref": "105" + }, + "value": "yjsiqdgtsmycxlncjceemlucn" + }, + "lastModifiedByType": { + "$id": "996", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "User" + }, + "lastModifiedAt": { + "$id": "997", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2024-03-21T08:11:54.895Z" + } + } + } + } + } + ] + }, + "nextLink": { + "$id": "998", + "kind": "string", + "type": { + "$ref": "317" + }, + "value": "https://microsoft.com/a" + } + } + } + } + ] + }, + { + "$id": "999", + "kind": "http", + "name": "FileSystems_ListByResourceGroup_MinimumSet_Gen", + "description": "FileSystems_ListByResourceGroup_MinimumSet_Gen", + "filePath": "2024-06-19/FileSystems_ListByResourceGroup_MinimumSet_Gen.json", + "parameters": [ + { + "$id": "1000", + "parameter": { + "$ref": "926" + }, + "value": { + "$id": "1001", + "kind": "string", + "type": { + "$ref": "927" + }, + "value": "2024-06-19" + } + }, + { + "$id": "1002", + "parameter": { + "$ref": "932" + }, + "value": { + "$id": "1003", + "kind": "string", + "type": { + "$ref": "933" + }, + "value": "rgQumulo" + } + }, + { + "$id": "1004", + "parameter": { + "$ref": "930" + }, + "value": { + "$id": "1005", + "kind": "string", + "type": { + "$ref": "931" + }, + "value": "aaaaaaa" + } + } + ], + "responses": [ + { + "$id": "1006", + "response": { + "$ref": "937" + }, + "statusCode": 200, + "bodyValue": { + "$id": "1007", + "kind": "model", + "type": { + "$ref": "311" + }, + "value": { + "$id": "1008", + "value": { + "$id": "1009", + "kind": "array", + "type": { + "$ref": "313" + }, + "value": [ + { + "$id": "1010", + "kind": "model", + "type": { + "$ref": "74" + }, + "value": { + "$id": "1011", + "name": { + "$id": "1012", + "kind": "string", + "type": { + "$ref": "82" + }, + "value": "aaaaa" + }, + "id": { + "$id": "1013", + "kind": "string", + "type": { + "$ref": "78" + }, + "value": "aaaaaaaaaaaaaaaaa" + }, + "location": { + "$id": "1014", + "kind": "string", + "type": { + "$ref": "125" + }, + "value": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa" + }, + "properties": { + "$id": "1015", + "kind": "model", + "type": { + "$ref": "129" + }, + "value": { + "$id": "1016", + "delegatedSubnetId": { + "$id": "1017", + "kind": "string", + "type": { + "$ref": "173" + }, + "value": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + }, + "marketplaceDetails": { + "$id": "1018", + "kind": "model", + "type": { + "$ref": "131" + }, + "value": { + "$id": "1019", + "marketplaceSubscriptionId": { + "$id": "1020", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "aaaaaaaaaaaaaaaaa" + }, + "marketplaceSubscriptionStatus": { + "$id": "1021", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "PendingFulfillmentStart" + }, + "offerId": { + "$id": "1022", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "aaaaaaaaa" + }, + "planId": { + "$id": "1023", + "kind": "string", + "type": { + "$ref": "137" + }, + "value": "aaaaaaa" + } + } + }, + "provisioningState": { + "$id": "1024", + "kind": "string", + "type": { + "$ref": "12" + }, + "value": "Accepted" + }, + "storageSku": { + "$id": "1025", + "kind": "string", + "type": { + "$ref": "161" + }, + "value": "Standard" + }, + "userDetails": { + "$id": "1026", + "kind": "model", + "type": { + "$ref": "165" + }, + "value": { + "$id": "1027" + } + } + } + } + } + } + ] + } + } + } + } + ] + } + ] + }, + { + "$id": "1028", + "name": "listBySubscription", + "resourceName": "FileSystemResource", + "doc": "List FileSystemResource resources by subscription ID", + "accessibility": "public", + "parameters": [ + { + "$id": "1029", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "1030", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "1031", + "type": { + "$id": "1032", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-06-19" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "1033", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "1034", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "1035", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "1036", + "kind": "constant", + "valueType": { + "$id": "1037", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "value": "application/json", + "decorators": [] + }, + "location": "Header", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Constant", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "1038", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "311" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "GET", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/providers/Qumulo.Storage/fileSystems", + "bufferResponse": true, + "paging": { + "$id": "1039", + "itemPropertySegments": [ + "value" + ], + "nextLink": { + "$id": "1040", + "responseSegments": [ + "nextLink" + ], + "responseLocation": "Body" + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Qumulo.Storage.FileSystems.listBySubscription", + "decorators": [], + "examples": [ + { + "$id": "1041", + "kind": "http", + "name": "FileSystems_ListBySubscription", + "description": "FileSystems_ListBySubscription", + "filePath": "2024-06-19/FileSystems_ListBySubscription_MaximumSet_Gen.json", + "parameters": [ + { + "$id": "1042", + "parameter": { + "$ref": "1029" + }, + "value": { + "$id": "1043", + "kind": "string", + "type": { + "$ref": "1030" + }, + "value": "2024-06-19" + } + }, + { + "$id": "1044", + "parameter": { + "$ref": "1033" + }, + "value": { + "$id": "1045", + "kind": "string", + "type": { + "$ref": "1034" + }, + "value": "382E8C7A-AC80-4D70-8580-EFE99537B9B7" + } + } + ], + "responses": [ + { + "$id": "1046", + "response": { + "$ref": "1038" + }, + "statusCode": 200, + "bodyValue": { + "$id": "1047", + "kind": "model", + "type": { + "$ref": "311" + }, + "value": { + "$id": "1048", + "value": { + "$id": "1049", + "kind": "array", + "type": { + "$ref": "313" + }, + "value": [ + { + "$id": "1050", + "kind": "model", + "type": { + "$ref": "74" + }, + "value": { + "$id": "1051", + "properties": { + "$id": "1052", + "kind": "model", + "type": { + "$ref": "129" + }, + "value": { + "$id": "1053", + "marketplaceDetails": { + "$id": "1054", + "kind": "model", + "type": { + "$ref": "131" + }, + "value": { + "$id": "1055", + "marketplaceSubscriptionId": { + "$id": "1056", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "xaqtkloiyovmexqhn" + }, + "planId": { + "$id": "1057", + "kind": "string", + "type": { + "$ref": "137" + }, + "value": "fwtpz" + }, + "offerId": { + "$id": "1058", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "s" + }, + "publisherId": { + "$id": "1059", + "kind": "string", + "type": { + "$ref": "145" + }, + "value": "czxcfrwodazyaft" + }, + "termUnit": { + "$id": "1060", + "kind": "string", + "type": { + "$ref": "149" + }, + "value": "cfwwczmygsimcyvoclcw" + }, + "marketplaceSubscriptionStatus": { + "$id": "1061", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "PendingFulfillmentStart" + } + } + }, + "provisioningState": { + "$id": "1062", + "kind": "string", + "type": { + "$ref": "12" + }, + "value": "Accepted" + }, + "storageSku": { + "$id": "1063", + "kind": "string", + "type": { + "$ref": "161" + }, + "value": "yhyzby" + }, + "userDetails": { + "$id": "1064", + "kind": "model", + "type": { + "$ref": "165" + }, + "value": { + "$id": "1065" + } + }, + "delegatedSubnetId": { + "$id": "1066", + "kind": "string", + "type": { + "$ref": "173" + }, + "value": "jykmxrf" + }, + "clusterLoginUrl": { + "$id": "1067", + "kind": "string", + "type": { + "$ref": "177" + }, + "value": "ykaynsjvhihdthkkvvodjrgc" + }, + "privateIPs": { + "$id": "1068", + "kind": "array", + "type": { + "$ref": "181" + }, + "value": [ + { + "$id": "1069", + "kind": "string", + "type": { + "$ref": "182" + }, + "value": "gzken" + } + ] + }, + "availabilityZone": { + "$id": "1070", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "eqdvbdiuwmhhzqzmksmwllpddqquwt" + } + } + }, + "identity": { + "$id": "1071", + "kind": "model", + "type": { + "$ref": "196" + }, + "value": { + "$id": "1072", + "principalId": { + "$id": "1073", + "kind": "string", + "type": { + "$ref": "198" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "tenantId": { + "$id": "1074", + "kind": "string", + "type": { + "$ref": "203" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "type": { + "$id": "1075", + "kind": "string", + "type": { + "$ref": "30" + }, + "value": "None" + }, + "userAssignedIdentities": { + "$id": "1076", + "kind": "dict", + "type": { + "$ref": "211" + }, + "value": { + "$id": "1077", + "key7679": { + "$id": "1078", + "kind": "model", + "type": { + "$ref": "213" + }, + "value": { + "$id": "1079", + "principalId": { + "$id": "1080", + "kind": "string", + "type": { + "$ref": "220" + }, + "value": "11111111-1111-1111-1111-111111111111" + }, + "clientId": { + "$id": "1081", + "kind": "string", + "type": { + "$ref": "215" + }, + "value": "11111111-1111-1111-1111-111111111111" + } + } + } + } + } + } + }, + "tags": { + "$id": "1082", + "kind": "dict", + "type": { + "$ref": "119" + }, + "value": { + "$id": "1083", + "key7090": { + "$id": "1084", + "kind": "string", + "type": { + "$ref": "121" + }, + "value": "rurrdiaqp" + } + } + }, + "location": { + "$id": "1085", + "kind": "string", + "type": { + "$ref": "125" + }, + "value": "pnb" + }, + "id": { + "$id": "1086", + "kind": "string", + "type": { + "$ref": "78" + }, + "value": "rfta" + }, + "name": { + "$id": "1087", + "kind": "string", + "type": { + "$ref": "82" + }, + "value": "stftolw" + }, + "type": { + "$id": "1088", + "kind": "string", + "type": { + "$ref": "86" + }, + "value": "wj" + }, + "systemData": { + "$id": "1089", + "kind": "model", + "type": { + "$ref": "91" + }, + "value": { + "$id": "1090", + "createdBy": { + "$id": "1091", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "usnkckwkizihezb" + }, + "createdByType": { + "$id": "1092", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "User" + }, + "createdAt": { + "$id": "1093", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2024-03-21T08:11:54.895Z" + }, + "lastModifiedBy": { + "$id": "1094", + "kind": "string", + "type": { + "$ref": "105" + }, + "value": "yjsiqdgtsmycxlncjceemlucn" + }, + "lastModifiedByType": { + "$id": "1095", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "User" + }, + "lastModifiedAt": { + "$id": "1096", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2024-03-21T08:11:54.895Z" + } + } + } + } + } + ] + }, + "nextLink": { + "$id": "1097", + "kind": "string", + "type": { + "$ref": "317" + }, + "value": "https://microsoft.com/a" + } + } + } + } + ] + }, + { + "$id": "1098", + "kind": "http", + "name": "FileSystems_ListBySubscription_MinimumSet_Gen", + "description": "FileSystems_ListBySubscription_MinimumSet_Gen", + "filePath": "2024-06-19/FileSystems_ListBySubscription_MinimumSet_Gen.json", + "parameters": [ + { + "$id": "1099", + "parameter": { + "$ref": "1029" + }, + "value": { + "$id": "1100", + "kind": "string", + "type": { + "$ref": "1030" + }, + "value": "2024-06-19" + } + }, + { + "$id": "1101", + "parameter": { + "$ref": "1033" + }, + "value": { + "$id": "1102", + "kind": "string", + "type": { + "$ref": "1034" + }, + "value": "aaaaaaa" + } + } + ], + "responses": [ + { + "$id": "1103", + "response": { + "$ref": "1038" + }, + "statusCode": 200, + "bodyValue": { + "$id": "1104", + "kind": "model", + "type": { + "$ref": "311" + }, + "value": { + "$id": "1105", + "value": { + "$id": "1106", + "kind": "array", + "type": { + "$ref": "313" + }, + "value": [ + { + "$id": "1107", + "kind": "model", + "type": { + "$ref": "74" + }, + "value": { + "$id": "1108", + "name": { + "$id": "1109", + "kind": "string", + "type": { + "$ref": "82" + }, + "value": "aaaaa" + }, + "id": { + "$id": "1110", + "kind": "string", + "type": { + "$ref": "78" + }, + "value": "aaaaaaaaaaaaaaaaa" + }, + "location": { + "$id": "1111", + "kind": "string", + "type": { + "$ref": "125" + }, + "value": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa" + }, + "properties": { + "$id": "1112", + "kind": "model", + "type": { + "$ref": "129" + }, + "value": { + "$id": "1113", + "delegatedSubnetId": { + "$id": "1114", + "kind": "string", + "type": { + "$ref": "173" + }, + "value": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + }, + "marketplaceDetails": { + "$id": "1115", + "kind": "model", + "type": { + "$ref": "131" + }, + "value": { + "$id": "1116", + "marketplaceSubscriptionId": { + "$id": "1117", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "aaaaaaaaaaaaaaaaa" + }, + "marketplaceSubscriptionStatus": { + "$id": "1118", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "PendingFulfillmentStart" + }, + "offerId": { + "$id": "1119", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "aaaaaaaaa" + }, + "planId": { + "$id": "1120", + "kind": "string", + "type": { + "$ref": "137" + }, + "value": "aaaaaaa" + } + } + }, + "provisioningState": { + "$id": "1121", + "kind": "string", + "type": { + "$ref": "12" + }, + "value": "Accepted" + }, + "storageSku": { + "$id": "1122", + "kind": "string", + "type": { + "$ref": "161" + }, + "value": "Standard" + }, + "userDetails": { + "$id": "1123", + "kind": "model", + "type": { + "$ref": "165" + }, + "value": { + "$id": "1124" + } + } + } + } + } + } + ] + } + } + } + } + ] + } + ] + } + ], + "parent": "StorageClient", + "parameters": [ + { + "$id": "1125", + "name": "endpoint", + "nameInRequest": "endpoint", + "doc": "Service host", + "type": { + "$id": "1126", + "kind": "url", + "name": "url", + "crossLanguageDefinitionId": "TypeSpec.url" + }, + "location": "Uri", + "isApiVersion": false, + "isContentType": false, + "isRequired": true, + "isEndpoint": true, + "skipUrlEncoding": false, + "explode": false, + "kind": "Client", + "defaultValue": { + "$id": "1127", + "type": { + "$id": "1128", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "https://management.azure.com" + } + } + ], + "decorators": [], + "crossLanguageDefinitionId": "Qumulo.Storage.FileSystems" + } + ], + "auth": { + "$id": "1129", + "oAuth2": { + "$id": "1130", + "scopes": [ + "user_impersonation" + ] + } + } +} diff --git a/sdk/resourcemanager/ci.mgmt.yml b/sdk/resourcemanager/ci.mgmt.yml index 15e7655c7b93..b5dc20f48d09 100644 --- a/sdk/resourcemanager/ci.mgmt.yml +++ b/sdk/resourcemanager/ci.mgmt.yml @@ -105,6 +105,7 @@ trigger: - sdk/hybridconnectivity/Azure.ResourceManager.HybridConnectivity - sdk/hybridkubernetes/Azure.ResourceManager.Kubernetes - sdk/hybridnetwork/Azure.ResourceManager.HybridNetwork + - sdk/impactreporting/Azure.ResourceManager.ImpactReporting - sdk/informaticadatamanagement/Azure.ResourceManager.InformaticaDataManagement - sdk/iot/Azure.ResourceManager.IotFirmwareDefense - sdk/iotcentral/Azure.ResourceManager.IotCentral @@ -313,6 +314,7 @@ pr: - sdk/hybridconnectivity/Azure.ResourceManager.HybridConnectivity - sdk/hybridkubernetes/Azure.ResourceManager.Kubernetes - sdk/hybridnetwork/Azure.ResourceManager.HybridNetwork + - sdk/impactreporting/Azure.ResourceManager.ImpactReporting - sdk/informaticadatamanagement/Azure.ResourceManager.InformaticaDataManagement - sdk/iot/Azure.ResourceManager.IotFirmwareDefense - sdk/iotcentral/Azure.ResourceManager.IotCentral diff --git a/sdk/storage/ci.yml b/sdk/storage/ci.yml index 2ca0501b60bd..4e749e6b85b1 100644 --- a/sdk/storage/ci.yml +++ b/sdk/storage/ci.yml @@ -12,6 +12,8 @@ trigger: - sdk/storage/Azure.Storage.DataMovement/ - sdk/storage/Azure.Storage.DataMovement.Blobs/ - sdk/storage/Azure.Storage.DataMovement.Files/ + exclude: + - sdk/storage/Azure.ResourceManager.Storage/ - sdk/storage/Azure.Storage.DataMovement.Blobs.Files.Shares/ exclude: - sdk/storage/Azure.ResourceManager.Storage/