From 9923bede88f68b1bccb2b4409345e5b1cc9d6d8d Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Thu, 20 Mar 2025 09:23:18 +0000 Subject: [PATCH] CodeGen from PR 33345 in Azure/azure-rest-api-specs Merge 2d5efff31757eec3446a07bf99d10fbe80daa5a4 into 8101a5323ca718856b5d462446107fdeabf28c6d --- .../Configuration.json | 12 + .../tsp-location.yaml | 5 +- .../tspCodeModel.json | 9009 ++++++ .../Configuration.json | 12 + .../tsp-location.yaml | 5 +- .../tspCodeModel.json | 24621 ++++++++++++++++ .../Azure.Messaging.EventGrid.Namespaces.sln | 54 + .../Azure.Messaging.EventGridV2/CHANGELOG.md | 11 + .../Directory.Build.props | 6 + .../Azure.Messaging.EventGridV2/README.md | 107 + ...e.Messaging.EventGrid.Namespaces.net8.0.cs | 131 + ...ing.EventGrid.Namespaces.netstandard2.0.cs | 131 + ...zure.Messaging.EventGrid.Namespaces.csproj | 20 + .../AcknowledgeRequest.Serialization.cs | 152 + .../src/Generated/AcknowledgeRequest.cs | 76 + .../AcknowledgeResult.Serialization.cs | 170 + .../src/Generated/AcknowledgeResult.cs | 83 + ...ssagingEventGridNamespacesClientOptions.cs | 40 + .../BrokerProperties.Serialization.cs | 150 + .../src/Generated/BrokerProperties.cs | 81 + .../src/Generated/CloudEvent.Serialization.cs | 262 + .../src/Generated/CloudEvent.cs | 164 + .../src/Generated/EventGridReceiverClient.cs | 840 + .../src/Generated/EventGridSenderClient.cs | 375 + .../FailedLockToken.Serialization.cs | 150 + .../src/Generated/FailedLockToken.cs | 82 + .../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 + ...ntGridNamespacesClientBuilderExtensions.cs | 73 + ...essagingEventGridNamespacesModelFactory.cs | 73 + .../Generated/PublishResult.Serialization.cs | 134 + .../src/Generated/PublishResult.cs | 60 + .../Generated/ReceiveDetails.Serialization.cs | 150 + .../src/Generated/ReceiveDetails.cs | 82 + .../Generated/ReceiveResult.Serialization.cs | 152 + .../src/Generated/ReceiveResult.cs | 76 + .../Generated/RejectRequest.Serialization.cs | 152 + .../src/Generated/RejectRequest.cs | 76 + .../Generated/RejectResult.Serialization.cs | 170 + .../src/Generated/RejectResult.cs | 83 + .../src/Generated/ReleaseDelay.cs | 60 + .../Generated/ReleaseRequest.Serialization.cs | 152 + .../src/Generated/ReleaseRequest.cs | 76 + .../Generated/ReleaseResult.Serialization.cs | 170 + .../src/Generated/ReleaseResult.cs | 83 + .../RenewLocksRequest.Serialization.cs | 152 + .../src/Generated/RenewLocksRequest.cs | 76 + .../RenewLocksResult.Serialization.cs | 170 + .../src/Generated/RenewLocksResult.cs | 83 + .../src/Properties/AssemblyInfo.cs | 11 + .../tsp-location.yaml | 4 + .../src/Generated/ApiResponseFormat.cs | 54 + .../src/Generated/Assistant.Serialization.cs | 99 +- .../src/Generated/Assistant.cs | 117 +- .../AssistantCreationOptions.Serialization.cs | 103 +- .../src/Generated/AssistantCreationOptions.cs | 92 +- .../src/Generated/AssistantStreamEvent.cs | 134 + .../AssistantThread.Serialization.cs | 28 +- .../src/Generated/AssistantThread.cs | 22 +- ...tantThreadCreationOptions.Serialization.cs | 31 +- .../AssistantThreadCreationOptions.cs | 18 +- ...sistantsApiResponseFormat.Serialization.cs | 138 + .../Generated/AssistantsApiResponseFormat.cs | 70 + ...iResponseFormatJsonObject.Serialization.cs | 130 + .../AssistantsApiResponseFormatJsonObject.cs | 29 + ...iResponseFormatJsonSchema.Serialization.cs | 138 + .../AssistantsApiResponseFormatJsonSchema.cs | 44 + ...ormatJsonSchemaJsonSchema.Serialization.cs | 183 + ...tsApiResponseFormatJsonSchemaJsonSchema.cs | 119 + .../AssistantsApiResponseFormatMode.cs | 48 + ...antsApiResponseFormatText.Serialization.cs | 130 + .../AssistantsApiResponseFormatText.cs | 29 + .../AssistantsApiToolChoiceOptionMode.cs | 51 + .../src/Generated/AssistantsClient.cs | 3308 ++- .../src/Generated/AssistantsClientOptions.cs | 17 +- .../src/Generated/AssistantsModelFactory.cs | 735 +- ...AssistantsNamedToolChoice.Serialization.cs | 157 + .../Generated/AssistantsNamedToolChoice.cs | 76 + .../AssistantsNamedToolChoiceType.cs | 54 + ...deInterpreterToolResource.Serialization.cs | 152 + .../Generated/CodeInterpreterToolResource.cs | 85 + ...CreateAndRunThreadOptions.Serialization.cs | 287 +- .../Generated/CreateAndRunThreadOptions.cs | 178 +- ...preterToolResourceOptions.Serialization.cs | 159 + ...eateCodeInterpreterToolResourceOptions.cs} | 31 +- ...sourceVectorStoreOptions.Serialization.cs} | 83 +- ...ileSearchToolResourceVectorStoreOptions.cs | 100 + .../CreateRunOptions.Serialization.cs | 247 + .../src/Generated/CreateRunOptions.cs | 173 +- ...reateToolResourcesOptions.Serialization.cs | 171 + .../Generated/CreateToolResourcesOptions.cs | 119 + ...ctorStoreFileBatchRequest.Serialization.cs | 167 + .../CreateVectorStoreFileBatchRequest.cs | 88 + ...ateVectorStoreFileRequest.Serialization.cs | 157 + .../Generated/CreateVectorStoreFileRequest.cs | 87 + .../src/Generated/DoneEvent.cs | 48 + .../src/Generated/ErrorEvent.cs | 48 + .../FileSearchToolCallResult.Serialization.cs | 183 + .../src/Generated/FileSearchToolCallResult.cs | 93 + ...ToolCallResultContentItem.Serialization.cs | 160 + .../FileSearchToolCallResultContentItem.cs | 69 + ...FileSearchToolCallResultContentItemType.cs | 48 + ...FileSearchToolDefinition.Serialization.cs} | 68 +- .../src/Generated/FileSearchToolDefinition.cs | 34 + ...archToolDefinitionDetails.Serialization.cs | 149 + .../FileSearchToolDefinitionDetails.cs | 73 + .../FileSearchToolResource.Serialization.cs | 159 + .../src/Generated/FileSearchToolResource.cs | 72 + .../src/Generated/FileState.cs | 75 + ...ation.cs => FunctionName.Serialization.cs} | 52 +- .../src/Generated/FunctionName.cs | 75 + .../src/Generated/IncompleteRunDetails.cs | 51 + ...ternalAssistantFileDeletionStatusObject.cs | 48 - .../InternalMessageImageFileDetails.cs | 4 +- ...nternalMessageTextDetails.Serialization.cs | 2 +- .../Generated/InternalMessageTextDetails.cs | 8 +- .../InternalMessageTextFileCitationDetails.cs | 6 +- .../InternalMessageTextFilePathDetails.cs | 4 +- .../MessageAttachment.Serialization.cs | 179 + .../src/Generated/MessageAttachment.cs | 120 + .../Generated/MessageDelta.Serialization.cs | 160 + .../src/Generated/MessageDelta.cs | 94 + ....cs => MessageDeltaChunk.Serialization.cs} | 66 +- .../{MessageFile.cs => MessageDeltaChunk.cs} | 48 +- .../src/Generated/MessageDeltaChunkObject.cs | 48 + .../MessageDeltaContent.Serialization.cs | 136 + .../src/Generated/MessageDeltaContent.cs | 80 + ...sageDeltaImageFileContent.Serialization.cs | 147 + .../Generated/MessageDeltaImageFileContent.cs | 41 + ...ltaImageFileContentObject.Serialization.cs | 145 + .../MessageDeltaImageFileContentObject.cs | 65 + ...essageDeltaTextAnnotation.Serialization.cs | 136 + .../Generated/MessageDeltaTextAnnotation.cs | 80 + .../MessageDeltaTextContent.Serialization.cs | 170 + .../src/Generated/MessageDeltaTextContent.cs | 78 + ...ageDeltaTextContentObject.Serialization.cs | 147 + .../MessageDeltaTextContentObject.cs | 41 + ...extFileCitationAnnotation.Serialization.cs | 156 + .../MessageDeltaTextFileCitationAnnotation.cs | 69 + ...eCitationAnnotationObject.Serialization.cs | 195 + ...geDeltaTextFileCitationAnnotationObject.cs | 53 + ...ltaTextFilePathAnnotation.Serialization.cs | 145 + .../MessageDeltaTextFilePathAnnotation.cs | 65 + ...tFilePathAnnotationObject.Serialization.cs | 195 + ...essageDeltaTextFilePathAnnotationObject.cs | 53 + .../src/Generated/MessageImageFileContent.cs | 2 +- .../MessageIncompleteDetails.Serialization.cs | 142 + .../src/Generated/MessageIncompleteDetails.cs | 72 + .../MessageIncompleteDetailsReason.cs | 60 + .../src/Generated/MessageStatus.cs | 54 + .../src/Generated/MessageStreamEvent.cs | 60 + .../MessageTextAnnotation.Serialization.cs | 4 - .../src/Generated/MessageTextAnnotation.cs | 18 +- .../src/Generated/MessageTextContent.cs | 2 +- ...extFileCitationAnnotation.Serialization.cs | 44 +- .../MessageTextFileCitationAnnotation.cs | 22 +- ...ageTextFilePathAnnotation.Serialization.cs | 44 +- .../MessageTextFilePathAnnotation.cs | 16 +- .../src/Generated/OpenAIFile.Serialization.cs | 28 + .../src/Generated/OpenAIFile.cs | 10 +- .../src/Generated/OpenAIFilePurpose.cs | 9 + ...OpenAIPageableListOfAssistantFileObject.cs | 48 - ...ageableListOfVectorStore.Serialization.cs} | 52 +- ....cs => OpenAIPageableListOfVectorStore.cs} | 18 +- ...bleListOfVectorStoreFile.Serialization.cs} | 52 +- ...=> OpenAIPageableListOfVectorStoreFile.cs} | 18 +- ...enAIPageableListOfVectorStoreFileObject.cs | 48 + ... OpenAIPageableListOfVectorStoreObject.cs} | 26 +- .../src/Generated/RetrievalToolDefinition.cs | 29 - .../RunCompletionUsage.Serialization.cs | 158 + .../src/Generated/RunCompletionUsage.cs | 84 + .../src/Generated/RunIncludes.cs | 48 + .../src/Generated/RunStep.Serialization.cs | 24 + .../src/Generated/RunStep.cs | 6 +- .../RunStepCompletionUsage.Serialization.cs | 158 + .../src/Generated/RunStepCompletionUsage.cs | 84 + .../Generated/RunStepDelta.Serialization.cs | 149 + .../src/Generated/RunStepDelta.cs | 73 + .../RunStepDeltaChunk.Serialization.cs | 158 + ...{AssistantFile.cs => RunStepDeltaChunk.cs} | 48 +- .../src/Generated/RunStepDeltaChunkObject.cs | 48 + ...terpreterDetailItemObject.Serialization.cs | 170 + ...tepDeltaCodeInterpreterDetailItemObject.cs | 82 + ...odeInterpreterImageOutput.Serialization.cs | 147 + .../RunStepDeltaCodeInterpreterImageOutput.cs | 41 + ...erpreterImageOutputObject.Serialization.cs | 145 + ...epDeltaCodeInterpreterImageOutputObject.cs | 65 + ...aCodeInterpreterLogOutput.Serialization.cs | 143 + .../RunStepDeltaCodeInterpreterLogOutput.cs | 41 + ...eltaCodeInterpreterOutput.Serialization.cs | 136 + .../RunStepDeltaCodeInterpreterOutput.cs | 80 + ...taCodeInterpreterToolCall.Serialization.cs | 153 + .../RunStepDeltaCodeInterpreterToolCall.cs | 46 + .../RunStepDeltaDetail.Serialization.cs | 134 + .../src/Generated/RunStepDeltaDetail.cs | 69 + ...epDeltaFileSearchToolCall.Serialization.cs | 164 + .../RunStepDeltaFileSearchToolCall.cs | 47 + .../RunStepDeltaFunction.Serialization.cs | 179 + .../src/Generated/RunStepDeltaFunction.cs | 73 + ...StepDeltaFunctionToolCall.Serialization.cs | 153 + .../Generated/RunStepDeltaFunctionToolCall.cs | 46 + ...nStepDeltaMessageCreation.Serialization.cs | 141 + .../Generated/RunStepDeltaMessageCreation.cs | 34 + ...eltaMessageCreationObject.Serialization.cs | 145 + .../RunStepDeltaMessageCreationObject.cs | 65 + .../RunStepDeltaToolCall.Serialization.cs | 139 + .../src/Generated/RunStepDeltaToolCall.cs | 89 + ...unStepDeltaToolCallObject.Serialization.cs | 151 + .../Generated/RunStepDeltaToolCallObject.cs | 43 + ...RunStepFileSearchToolCall.Serialization.cs | 150 + .../Generated/RunStepFileSearchToolCall.cs | 51 + .../src/Generated/RunStepRetrievalToolCall.cs | 50 - .../src/Generated/RunStepStreamEvent.cs | 66 + .../RunStepToolCall.Serialization.cs | 2 +- .../src/Generated/RunStepToolCall.cs | 2 +- .../src/Generated/RunStepToolCallDetails.cs | 6 +- .../src/Generated/RunStreamEvent.cs | 72 + ...itToolOutputsToRunRequest.Serialization.cs | 25 +- .../SubmitToolOutputsToRunRequest.cs | 12 +- .../Generated/ThreadMessage.Serialization.cs | 132 +- .../src/Generated/ThreadMessage.cs | 72 +- ... => ThreadMessageOptions.Serialization.cs} | 73 +- ...tionMessage.cs => ThreadMessageOptions.cs} | 62 +- .../src/Generated/ThreadRun.Serialization.cs | 237 +- .../src/Generated/ThreadRun.cs | 161 +- .../src/Generated/ThreadStreamEvent.cs | 48 + .../Generated/ToolDefinition.Serialization.cs | 2 +- .../src/Generated/ToolDefinition.cs | 2 +- ...tion.cs => ToolResources.Serialization.cs} | 92 +- .../src/Generated/ToolResources.cs | 73 + .../TruncationObject.Serialization.cs | 165 + .../src/Generated/TruncationObject.cs | 91 + .../src/Generated/TruncationStrategy.cs | 51 + ...sistantsApiResponseFormat.Serialization.cs | 130 + .../UnknownAssistantsApiResponseFormat.cs | 28 + ...nknownMessageDeltaContent.Serialization.cs | 132 + .../Generated/UnknownMessageDeltaContent.cs | 29 + ...essageDeltaTextAnnotation.Serialization.cs | 132 + .../UnknownMessageDeltaTextAnnotation.cs | 29 + ...nownMessageTextAnnotation.Serialization.cs | 14 +- .../Generated/UnknownMessageTextAnnotation.cs | 4 +- ...eltaCodeInterpreterOutput.Serialization.cs | 132 + ...nknownRunStepDeltaCodeInterpreterOutput.cs | 29 + ...nknownRunStepDeltaDetail.Serialization.cs} | 46 +- .../Generated/UnknownRunStepDeltaDetail.cs | 28 + ...knownRunStepDeltaToolCall.Serialization.cs | 138 + .../Generated/UnknownRunStepDeltaToolCall.cs | 30 + ...reChunkingStrategyRequest.Serialization.cs | 126 + ...knownVectorStoreChunkingStrategyRequest.cs | 28 + ...eChunkingStrategyResponse.Serialization.cs | 126 + ...nownVectorStoreChunkingStrategyResponse.cs | 28 + .../UpdateAssistantOptions.Serialization.cs | 95 +- .../src/Generated/UpdateAssistantOptions.cs | 92 +- ...teAssistantThreadOptions.Serialization.cs} | 67 +- ...est.cs => UpdateAssistantThreadOptions.cs} | 51 +- ...preterToolResourceOptions.Serialization.cs | 159 + ...pdateCodeInterpreterToolResourceOptions.cs | 66 + ...SearchToolResourceOptions.Serialization.cs | 159 + .../UpdateFileSearchToolResourceOptions.cs | 66 + ...pdateToolResourcesOptions.Serialization.cs | 164 + .../Generated/UpdateToolResourcesOptions.cs | 79 + .../Generated/VectorStore.Serialization.cs | 291 + .../src/Generated/VectorStore.cs | 132 + ...toChunkingStrategyRequest.Serialization.cs | 126 + .../VectorStoreAutoChunkingStrategyRequest.cs | 29 + ...oChunkingStrategyResponse.Serialization.cs | 126 + ...VectorStoreAutoChunkingStrategyResponse.cs | 29 + ...reChunkingStrategyRequest.Serialization.cs | 134 + .../VectorStoreChunkingStrategyRequest.cs | 69 + .../VectorStoreChunkingStrategyRequestType.cs | 51 + ...eChunkingStrategyResponse.Serialization.cs | 134 + .../VectorStoreChunkingStrategyResponse.cs | 69 + ...VectorStoreChunkingStrategyResponseType.cs | 51 + ...ectorStoreDeletionStatus.Serialization.cs} | 46 +- ...Status.cs => VectorStoreDeletionStatus.cs} | 22 +- .../VectorStoreDeletionStatusObject.cs | 48 + ...ctorStoreExpirationPolicy.Serialization.cs | 150 + .../Generated/VectorStoreExpirationPolicy.cs | 78 + .../VectorStoreExpirationPolicyAnchor.cs | 48 + .../VectorStoreFile.Serialization.cs | 219 + .../src/Generated/VectorStoreFile.cs | 139 + .../VectorStoreFileBatch.Serialization.cs | 189 + .../src/Generated/VectorStoreFileBatch.cs | 106 + .../Generated/VectorStoreFileBatchObject.cs | 48 + .../Generated/VectorStoreFileBatchStatus.cs | 57 + .../VectorStoreFileCount.Serialization.cs | 180 + .../src/Generated/VectorStoreFileCount.cs | 96 + ...orStoreFileDeletionStatus.Serialization.cs | 158 + .../VectorStoreFileDeletionStatus.cs | 85 + .../VectorStoreFileDeletionStatusObject.cs | 48 + .../VectorStoreFileError.Serialization.cs | 150 + .../src/Generated/VectorStoreFileError.cs | 81 + .../src/Generated/VectorStoreFileErrorCode.cs | 54 + .../src/Generated/VectorStoreFileObject.cs | 48 + .../src/Generated/VectorStoreFileStatus.cs | 57 + .../Generated/VectorStoreFileStatusFilter.cs | 57 + .../src/Generated/VectorStoreObject.cs | 48 + .../VectorStoreOptions.Serialization.cs | 239 + .../src/Generated/VectorStoreOptions.cs | 91 + ...icChunkingStrategyOptions.Serialization.cs | 150 + ...ectorStoreStaticChunkingStrategyOptions.cs | 87 + ...icChunkingStrategyRequest.Serialization.cs | 134 + ...ectorStoreStaticChunkingStrategyRequest.cs | 44 + ...cChunkingStrategyResponse.Serialization.cs | 134 + ...ctorStoreStaticChunkingStrategyResponse.cs | 44 + .../src/Generated/VectorStoreStatus.cs | 54 + .../VectorStoreUpdateOptions.Serialization.cs | 213 + ...Request.cs => VectorStoreUpdateOptions.cs} | 22 +- .../tsp-location.yaml | 3 +- sdk/resourcemanager/ci.mgmt.yml | 2 + .../Azure.ResourceManager.SiteManager.sln | 54 + .../CHANGELOG.md | 11 + .../Directory.Build.props | 6 + .../README.md | 80 + ...zure.ResourceManager.SiteManager.net8.0.cs | 185 + ...ourceManager.SiteManager.netstandard2.0.cs | 185 + .../assets.json | 7 + ...ResourceManager.SiteManager.Samples.csproj | 13 + .../Azure.ResourceManager.SiteManager.csproj | 8 + .../Generated/ArmSiteManagerModelFactory.cs | 48 + .../MockableSiteManagerArmClient.cs | 61 + ...ockableSiteManagerResourceGroupResource.cs | 105 + ...MockableSiteManagerSubscriptionResource.cs | 105 + .../Extensions/SiteManagerExtensions.cs | 259 + .../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 + .../ResourceGroupSiteOperationSource.cs | 36 + .../SiteManagerArmOperation.cs | 94 + .../SiteManagerArmOperationOfT.cs | 100 + .../SubscriptionSiteOperationSource.cs | 36 + .../Models/ResourceProvisioningState.cs | 54 + .../Models/SiteListResult.Serialization.cs | 151 + .../src/Generated/Models/SiteListResult.cs | 80 + .../Models/SiteProperties.Serialization.cs | 170 + .../src/Generated/Models/SiteProperties.cs | 78 + .../Models/SiteUpdate.Serialization.cs | 133 + .../src/Generated/Models/SiteUpdate.cs | 65 + .../SiteUpdateProperties.Serialization.cs | 155 + .../Generated/Models/SiteUpdateProperties.cs | 74 + .../src/Generated/ProviderConstants.cs | 16 + .../Generated/ResourceGroupSiteCollection.cs | 494 + ...ResourceGroupSiteResource.Serialization.cs | 26 + .../Generated/ResourceGroupSiteResource.cs | 344 + .../SitesBySubscriptionRestOperations.cs | 533 + .../RestOperations/SitesRestOperations.cs | 577 + .../src/Generated/SiteData.Serialization.cs | 155 + .../src/Generated/SiteData.cs | 75 + .../Generated/SubscriptionSiteCollection.cs | 494 + .../SubscriptionSiteResource.Serialization.cs | 26 + .../src/Generated/SubscriptionSiteResource.cs | 343 + .../src/Properties/AssemblyInfo.cs | 11 + .../tsp-location.yaml | 4 + sdk/sitemanager/ci.mgmt.yml | 26 + sdk/storage/ci.yml | 4 + .../Azure.ResourceManager.Terraform.net8.0.cs | 27 +- ...esourceManager.Terraform.netstandard2.0.cs | 27 +- .../src/Generated/ArmTerraformModelFactory.cs | 13 +- .../Models/AuthorizationScopeFilter.cs | 57 + .../ExportQueryTerraform.Serialization.cs | 30 +- .../Generated/Models/ExportQueryTerraform.cs | 10 +- .../TerraformExportResult.Serialization.cs | 13 +- .../Generated/Models/TerraformExportResult.cs | 6 +- .../tsp-location.yaml | 3 +- .../api/Azure.AI.Translation.Text.net8.0.cs | 48 +- ...zure.AI.Translation.Text.netstandard2.0.cs | 48 +- .../AITranslationTextModelFactory.cs | 84 +- .../BackTranslation.Serialization.cs | 2 +- .../src/Generated/BackTranslation.cs | 14 +- .../BreakSentenceItem.Serialization.cs | 2 +- .../src/Generated/BreakSentenceItem.cs | 18 +- .../DetectedLanguage.Serialization.cs | 2 +- .../src/Generated/DetectedLanguage.cs | 14 +- .../Generated/LanguageScript.Serialization.cs | 2 +- .../src/Generated/LanguageScript.cs | 14 +- .../SentenceBoundaries.Serialization.cs | 4 +- .../src/Generated/SentenceBoundaries.cs | 30 +- .../SourceDictionaryLanguage.Serialization.cs | 2 +- .../src/Generated/SourceDictionaryLanguage.cs | 14 +- .../TargetDictionaryLanguage.Serialization.cs | 2 +- .../src/Generated/TargetDictionaryLanguage.cs | 14 +- .../src/Generated/TextTranslationClient.cs | 40 +- .../TranslatedTextAlignment.Serialization.cs | 2 +- .../src/Generated/TranslatedTextAlignment.cs | 18 +- .../TranslationLanguage.Serialization.cs | 2 +- .../src/Generated/TranslationLanguage.cs | 14 +- .../TranslationText.Serialization.cs | 6 +- .../src/Generated/TranslationText.cs | 24 +- .../TransliterableScript.Serialization.cs | 2 +- .../src/Generated/TransliterableScript.cs | 22 +- .../tsp-location.yaml | 3 +- 399 files changed, 71139 insertions(+), 2376 deletions(-) create mode 100644 sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/Configuration.json create mode 100644 sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/tspCodeModel.json create mode 100644 sdk/deviceregistry/Azure.ResourceManager.DeviceRegistry/Configuration.json create mode 100644 sdk/deviceregistry/Azure.ResourceManager.DeviceRegistry/tspCodeModel.json create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/Azure.Messaging.EventGrid.Namespaces.sln create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/CHANGELOG.md create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/Directory.Build.props create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/README.md create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/api/Azure.Messaging.EventGrid.Namespaces.net8.0.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/api/Azure.Messaging.EventGrid.Namespaces.netstandard2.0.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Azure.Messaging.EventGrid.Namespaces.csproj create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AcknowledgeRequest.Serialization.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AcknowledgeRequest.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AcknowledgeResult.Serialization.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AcknowledgeResult.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AzureMessagingEventGridNamespacesClientOptions.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/BrokerProperties.Serialization.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/BrokerProperties.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/CloudEvent.Serialization.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/CloudEvent.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/EventGridReceiverClient.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/EventGridSenderClient.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/FailedLockToken.Serialization.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/FailedLockToken.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/Argument.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/ChangeTrackingDictionary.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/ChangeTrackingList.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/ModelSerializationExtensions.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/Optional.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/RequestContentHelper.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/Utf8JsonRequestContent.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/MessagingEventGridNamespacesClientBuilderExtensions.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/MessagingEventGridNamespacesModelFactory.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/PublishResult.Serialization.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/PublishResult.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReceiveDetails.Serialization.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReceiveDetails.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReceiveResult.Serialization.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReceiveResult.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RejectRequest.Serialization.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RejectRequest.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RejectResult.Serialization.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RejectResult.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseDelay.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseRequest.Serialization.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseRequest.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseResult.Serialization.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseResult.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RenewLocksRequest.Serialization.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RenewLocksRequest.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RenewLocksResult.Serialization.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RenewLocksResult.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/src/Properties/AssemblyInfo.cs create mode 100644 sdk/eventgrid/Azure.Messaging.EventGridV2/tsp-location.yaml create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ApiResponseFormat.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantStreamEvent.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormat.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormat.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonObject.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonSchema.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonSchema.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonSchemaJsonSchema.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonSchemaJsonSchema.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatMode.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatText.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatText.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiToolChoiceOptionMode.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsNamedToolChoice.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsNamedToolChoice.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsNamedToolChoiceType.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CodeInterpreterToolResource.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CodeInterpreterToolResource.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateCodeInterpreterToolResourceOptions.Serialization.cs rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{CreateAssistantFileRequest.cs => CreateCodeInterpreterToolResourceOptions.cs} (64%) rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{ThreadInitializationMessage.Serialization.cs => CreateFileSearchToolResourceVectorStoreOptions.Serialization.cs} (62%) create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateFileSearchToolResourceVectorStoreOptions.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateToolResourcesOptions.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateToolResourcesOptions.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateVectorStoreFileBatchRequest.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateVectorStoreFileBatchRequest.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateVectorStoreFileRequest.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateVectorStoreFileRequest.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/DoneEvent.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ErrorEvent.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResult.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResult.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResultContentItem.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResultContentItem.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResultContentItemType.cs rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{RunStepRetrievalToolCall.Serialization.cs => FileSearchToolDefinition.Serialization.cs} (60%) create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolDefinition.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolDefinitionDetails.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolDefinitionDetails.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolResource.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolResource.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileState.cs rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{CreateAssistantFileRequest.Serialization.cs => FunctionName.Serialization.cs} (61%) create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FunctionName.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/IncompleteRunDetails.cs delete mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalAssistantFileDeletionStatusObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageAttachment.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageAttachment.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDelta.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDelta.cs rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{MessageFile.Serialization.cs => MessageDeltaChunk.Serialization.cs} (64%) rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{MessageFile.cs => MessageDeltaChunk.cs} (56%) create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaChunkObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaContent.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaContent.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaImageFileContent.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaImageFileContent.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaImageFileContentObject.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaImageFileContentObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextAnnotation.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextAnnotation.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextContent.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextContent.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextContentObject.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextContentObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFileCitationAnnotation.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFileCitationAnnotation.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFileCitationAnnotationObject.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFileCitationAnnotationObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFilePathAnnotation.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFilePathAnnotation.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFilePathAnnotationObject.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFilePathAnnotationObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageIncompleteDetails.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageIncompleteDetails.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageIncompleteDetailsReason.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageStatus.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageStreamEvent.cs delete mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfAssistantFileObject.cs rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{InternalOpenAIPageableListOfMessageFile.Serialization.cs => OpenAIPageableListOfVectorStore.Serialization.cs} (66%) rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{InternalOpenAIPageableListOfAssistantFile.cs => OpenAIPageableListOfVectorStore.cs} (78%) rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{InternalOpenAIPageableListOfAssistantFile.Serialization.cs => OpenAIPageableListOfVectorStoreFile.Serialization.cs} (65%) rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{InternalOpenAIPageableListOfMessageFile.cs => OpenAIPageableListOfVectorStoreFile.cs} (78%) create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStoreFileObject.cs rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{OpenAIPageableListOfMessageFileObject.cs => OpenAIPageableListOfVectorStoreObject.cs} (55%) delete mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RetrievalToolDefinition.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunCompletionUsage.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunCompletionUsage.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunIncludes.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepCompletionUsage.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepCompletionUsage.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDelta.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDelta.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaChunk.Serialization.cs rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{AssistantFile.cs => RunStepDeltaChunk.cs} (51%) create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaChunkObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterDetailItemObject.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterDetailItemObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterImageOutput.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterImageOutput.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterImageOutputObject.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterImageOutputObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterLogOutput.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterLogOutput.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterOutput.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterOutput.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterToolCall.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterToolCall.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaDetail.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaDetail.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFileSearchToolCall.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFileSearchToolCall.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFunction.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFunction.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFunctionToolCall.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFunctionToolCall.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaMessageCreation.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaMessageCreation.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaMessageCreationObject.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaMessageCreationObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaToolCall.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaToolCall.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaToolCallObject.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaToolCallObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepFileSearchToolCall.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepFileSearchToolCall.cs delete mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepRetrievalToolCall.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepStreamEvent.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStreamEvent.cs rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{CreateMessageRequest.Serialization.cs => ThreadMessageOptions.Serialization.cs} (70%) rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{ThreadInitializationMessage.cs => ThreadMessageOptions.cs} (53%) create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadStreamEvent.cs rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{AssistantFile.Serialization.cs => ToolResources.Serialization.cs} (61%) create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ToolResources.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/TruncationObject.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/TruncationObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/TruncationStrategy.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownAssistantsApiResponseFormat.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownAssistantsApiResponseFormat.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageDeltaContent.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageDeltaContent.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageDeltaTextAnnotation.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageDeltaTextAnnotation.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaCodeInterpreterOutput.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaCodeInterpreterOutput.cs rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{RetrievalToolDefinition.Serialization.cs => UnknownRunStepDeltaDetail.Serialization.cs} (59%) create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaDetail.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaToolCall.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaToolCall.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownVectorStoreChunkingStrategyRequest.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownVectorStoreChunkingStrategyRequest.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownVectorStoreChunkingStrategyResponse.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownVectorStoreChunkingStrategyResponse.cs rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{UpdateThreadRequest.Serialization.cs => UpdateAssistantThreadOptions.Serialization.cs} (62%) rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{CreateMessageRequest.cs => UpdateAssistantThreadOptions.cs} (53%) create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateCodeInterpreterToolResourceOptions.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateCodeInterpreterToolResourceOptions.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateFileSearchToolResourceOptions.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateFileSearchToolResourceOptions.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateToolResourcesOptions.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateToolResourcesOptions.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStore.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStore.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreAutoChunkingStrategyRequest.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreAutoChunkingStrategyRequest.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreAutoChunkingStrategyResponse.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreAutoChunkingStrategyResponse.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyRequest.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyRequest.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyRequestType.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyResponse.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyResponse.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyResponseType.cs rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{InternalAssistantFileDeletionStatus.Serialization.cs => VectorStoreDeletionStatus.Serialization.cs} (64%) rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{InternalAssistantFileDeletionStatus.cs => VectorStoreDeletionStatus.cs} (71%) create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreDeletionStatusObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreExpirationPolicy.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreExpirationPolicy.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreExpirationPolicyAnchor.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFile.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFile.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileBatch.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileBatch.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileBatchObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileBatchStatus.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileCount.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileCount.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileDeletionStatus.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileDeletionStatus.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileDeletionStatusObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileError.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileError.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileErrorCode.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileStatus.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileStatusFilter.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreObject.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreOptions.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreOptions.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyOptions.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyOptions.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyRequest.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyRequest.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyResponse.Serialization.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyResponse.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStatus.cs create mode 100644 sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreUpdateOptions.Serialization.cs rename sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/{UpdateThreadRequest.cs => VectorStoreUpdateOptions.cs} (69%) create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/Azure.ResourceManager.SiteManager.sln create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/CHANGELOG.md create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/Directory.Build.props create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/README.md create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/api/Azure.ResourceManager.SiteManager.net8.0.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/api/Azure.ResourceManager.SiteManager.netstandard2.0.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/assets.json create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/samples/Azure.ResourceManager.SiteManager.Samples.csproj create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Azure.ResourceManager.SiteManager.csproj create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ArmSiteManagerModelFactory.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Extensions/MockableSiteManagerArmClient.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Extensions/MockableSiteManagerResourceGroupResource.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Extensions/MockableSiteManagerSubscriptionResource.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Extensions/SiteManagerExtensions.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/Argument.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/ChangeTrackingDictionary.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/ChangeTrackingList.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/ModelSerializationExtensions.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/Optional.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/Utf8JsonRequestContent.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/LongRunningOperation/ResourceGroupSiteOperationSource.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/LongRunningOperation/SiteManagerArmOperation.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/LongRunningOperation/SiteManagerArmOperationOfT.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/LongRunningOperation/SubscriptionSiteOperationSource.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/ResourceProvisioningState.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteListResult.Serialization.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteListResult.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteProperties.Serialization.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteProperties.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteUpdate.Serialization.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteUpdate.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteUpdateProperties.Serialization.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteUpdateProperties.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ProviderConstants.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ResourceGroupSiteCollection.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ResourceGroupSiteResource.Serialization.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ResourceGroupSiteResource.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/RestOperations/SitesBySubscriptionRestOperations.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/RestOperations/SitesRestOperations.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SiteData.Serialization.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SiteData.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SubscriptionSiteCollection.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SubscriptionSiteResource.Serialization.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SubscriptionSiteResource.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Properties/AssemblyInfo.cs create mode 100644 sdk/sitemanager/Azure.ResourceManager.SiteManager/tsp-location.yaml create mode 100644 sdk/sitemanager/ci.mgmt.yml create mode 100644 sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/AuthorizationScopeFilter.cs diff --git a/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/Configuration.json b/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/Configuration.json new file mode 100644 index 000000000000..3ebb2db81a78 --- /dev/null +++ b/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/Configuration.json @@ -0,0 +1,12 @@ +{ + "output-folder": ".", + "namespace": "Azure.ResourceManager.ComputeSchedule", + "library-name": "Azure.ResourceManager.ComputeSchedule", + "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/computeschedule/Azure.ResourceManager.ComputeSchedule/tsp-location.yaml b/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/tsp-location.yaml index 43a99ae83111..290e07d8a3fc 100644 --- a/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/tsp-location.yaml +++ b/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/tsp-location.yaml @@ -1,3 +1,4 @@ directory: specification/computeschedule/ComputeSchedule.Management -commit: 62e3312e67873d702fb2c6e5c7717d99cf4d369b -repo: Azure/azure-rest-api-specs \ No newline at end of file +commit: 27a6a18feb693251ea80d1894f77fe8c0fdce06a +repo: Azure/azure-rest-api-specs +additionalDirectories: diff --git a/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/tspCodeModel.json b/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/tspCodeModel.json new file mode 100644 index 000000000000..37c72f121733 --- /dev/null +++ b/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/tspCodeModel.json @@ -0,0 +1,9009 @@ +{ + "$id": "1", + "name": "Microsoft.ComputeSchedule", + "apiVersions": [ + "2024-10-01" + ], + "enums": [ + { + "$id": "2", + "kind": "enum", + "name": "ScheduledActionDeadlineType", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.DeadlineType", + "valueType": { + "$id": "3", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "4", + "kind": "enumvalue", + "name": "Unknown", + "value": "Unknown", + "valueType": { + "$id": "5", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "2" + }, + "doc": "Default value of Unknown.", + "decorators": [] + }, + { + "$id": "6", + "kind": "enumvalue", + "name": "InitiateAt", + "value": "InitiateAt", + "valueType": { + "$id": "7", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "2" + }, + "doc": "Initiate the operation at the given deadline.", + "decorators": [] + }, + { + "$id": "8", + "kind": "enumvalue", + "name": "CompleteBy", + "value": "CompleteBy", + "valueType": { + "$id": "9", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "2" + }, + "doc": "Complete the operation by the given deadline.", + "decorators": [] + } + ], + "namespace": "Microsoft.ComputeSchedule", + "doc": "The types of deadlines supported by ScheduledActions", + "isFixed": false, + "isFlags": false, + "usage": "Input,Output,Json", + "decorators": [] + }, + { + "$id": "10", + "kind": "enum", + "name": "ScheduledActionOptimizationPreference", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.OptimizationPreference", + "valueType": { + "$id": "11", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "12", + "kind": "enumvalue", + "name": "Cost", + "value": "Cost", + "valueType": { + "$id": "13", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "10" + }, + "doc": "Optimize while considering cost savings", + "decorators": [] + }, + { + "$id": "14", + "kind": "enumvalue", + "name": "Availability", + "value": "Availability", + "valueType": { + "$id": "15", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "10" + }, + "doc": "Optimize while considering availability of resources", + "decorators": [] + }, + { + "$id": "16", + "kind": "enumvalue", + "name": "CostAvailabilityBalanced", + "value": "CostAvailabilityBalanced", + "valueType": { + "$id": "17", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "10" + }, + "doc": "Optimize while considering a balance of cost and availability", + "decorators": [] + } + ], + "namespace": "Microsoft.ComputeSchedule", + "doc": "The preferences customers can select to optimize their requests to ScheduledActions", + "isFixed": false, + "isFlags": false, + "usage": "Input,Json", + "decorators": [] + }, + { + "$id": "18", + "kind": "enum", + "name": "ResourceOperationType", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperationType", + "valueType": { + "$id": "19", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "20", + "kind": "enumvalue", + "name": "Unknown", + "value": "Unknown", + "valueType": { + "$id": "21", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "18" + }, + "doc": "The default value for this enum type", + "decorators": [] + }, + { + "$id": "22", + "kind": "enumvalue", + "name": "Start", + "value": "Start", + "valueType": { + "$id": "23", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "18" + }, + "doc": "Start operations on the resources", + "decorators": [] + }, + { + "$id": "24", + "kind": "enumvalue", + "name": "Deallocate", + "value": "Deallocate", + "valueType": { + "$id": "25", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "18" + }, + "doc": "Deallocate operations on the resources", + "decorators": [] + }, + { + "$id": "26", + "kind": "enumvalue", + "name": "Hibernate", + "value": "Hibernate", + "valueType": { + "$id": "27", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "18" + }, + "doc": "Hibernate operations on the resources", + "decorators": [] + } + ], + "namespace": "Microsoft.ComputeSchedule", + "doc": "The kind of operation types that can be performed on resources using ScheduledActions", + "isFixed": false, + "isFlags": false, + "usage": "Output,Json", + "decorators": [] + }, + { + "$id": "28", + "kind": "enum", + "name": "ScheduledActionOperationState", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.OperationState", + "valueType": { + "$id": "29", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "30", + "kind": "enumvalue", + "name": "Unknown", + "value": "Unknown", + "valueType": { + "$id": "31", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "28" + }, + "doc": "The default value for the operation state enum", + "decorators": [] + }, + { + "$id": "32", + "kind": "enumvalue", + "name": "PendingScheduling", + "value": "PendingScheduling", + "valueType": { + "$id": "33", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "28" + }, + "doc": "Operations that are pending scheduling", + "decorators": [] + }, + { + "$id": "34", + "kind": "enumvalue", + "name": "Scheduled", + "value": "Scheduled", + "valueType": { + "$id": "35", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "28" + }, + "doc": "Operations that have been scheduled", + "decorators": [] + }, + { + "$id": "36", + "kind": "enumvalue", + "name": "PendingExecution", + "value": "PendingExecution", + "valueType": { + "$id": "37", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "28" + }, + "doc": "Operations that are waiting to be executed", + "decorators": [] + }, + { + "$id": "38", + "kind": "enumvalue", + "name": "Executing", + "value": "Executing", + "valueType": { + "$id": "39", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "28" + }, + "doc": "Operations that are in the process of being executed", + "decorators": [] + }, + { + "$id": "40", + "kind": "enumvalue", + "name": "Succeeded", + "value": "Succeeded", + "valueType": { + "$id": "41", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "28" + }, + "doc": "Operations that suceeded", + "decorators": [] + }, + { + "$id": "42", + "kind": "enumvalue", + "name": "Failed", + "value": "Failed", + "valueType": { + "$id": "43", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "28" + }, + "doc": "Operations that have failed", + "decorators": [] + }, + { + "$id": "44", + "kind": "enumvalue", + "name": "Cancelled", + "value": "Cancelled", + "valueType": { + "$id": "45", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "28" + }, + "doc": "Operations that have been Cancelled by the user", + "decorators": [] + }, + { + "$id": "46", + "kind": "enumvalue", + "name": "Blocked", + "value": "Blocked", + "valueType": { + "$id": "47", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "28" + }, + "doc": "Operations that are blocked", + "decorators": [] + } + ], + "namespace": "Microsoft.ComputeSchedule", + "doc": "Values that define the states of operations in Scheduled Actions", + "isFixed": false, + "isFlags": false, + "usage": "Output,Json", + "decorators": [] + }, + { + "$id": "48", + "kind": "enum", + "name": "Origin", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Origin", + "valueType": { + "$id": "49", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "50", + "kind": "enumvalue", + "name": "user", + "value": "user", + "valueType": { + "$id": "51", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "48" + }, + "doc": "Indicates the operation is initiated by a user.", + "decorators": [] + }, + { + "$id": "52", + "kind": "enumvalue", + "name": "system", + "value": "system", + "valueType": { + "$id": "53", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "48" + }, + "doc": "Indicates the operation is initiated by a system.", + "decorators": [] + }, + { + "$id": "54", + "kind": "enumvalue", + "name": "user,system", + "value": "user,system", + "valueType": { + "$id": "55", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "48" + }, + "doc": "Indicates the operation is initiated by a user or system.", + "decorators": [] + } + ], + "namespace": "Azure.ResourceManager.CommonTypes", + "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": "56", + "kind": "enum", + "name": "ActionType", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ActionType", + "valueType": { + "$id": "57", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "58", + "kind": "enumvalue", + "name": "Internal", + "value": "Internal", + "valueType": { + "$id": "59", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "56" + }, + "doc": "Actions are for internal-only APIs.", + "decorators": [] + } + ], + "namespace": "Azure.ResourceManager.CommonTypes", + "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": "60", + "kind": "enum", + "name": "Versions", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.Versions", + "valueType": { + "$id": "61", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "62", + "kind": "enumvalue", + "name": "2024-10-01", + "value": "2024-10-01", + "valueType": { + "$id": "63", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "60" + }, + "doc": "2024-10-01 version", + "decorators": [] + } + ], + "namespace": "Microsoft.ComputeSchedule", + "doc": "ComputeSchedule API versions", + "isFixed": true, + "isFlags": false, + "usage": "ApiVersionEnum", + "decorators": [] + } + ], + "models": [ + { + "$id": "64", + "kind": "model", + "name": "SubmitDeallocateRequest", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.SubmitDeallocateRequest", + "usage": "Input,Json", + "doc": "The deallocate request for resources", + "decorators": [], + "properties": [ + { + "$id": "65", + "kind": "property", + "name": "schedule", + "serializedName": "schedule", + "doc": "The schedule for the request", + "type": { + "$id": "66", + "kind": "model", + "name": "UserRequestSchedule", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.Schedule", + "usage": "Input,Json", + "doc": "The schedule details for the user request", + "decorators": [], + "properties": [ + { + "$id": "67", + "kind": "property", + "name": "deadline", + "serializedName": "deadline", + "doc": "The deadline for the operation", + "type": { + "$id": "68", + "kind": "offsetDateTime", + "name": "offsetDateTime", + "encode": "rfc3339", + "wireType": { + "$id": "69", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.offsetDateTime", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.Schedule.deadline", + "serializationOptions": { + "$id": "70", + "json": { + "$id": "71", + "name": "deadline" + } + } + }, + { + "$id": "72", + "kind": "property", + "name": "userRequestDeadline", + "serializedName": "deadLine", + "doc": "The deadline for the operation", + "type": { + "$id": "73", + "kind": "offsetDateTime", + "name": "offsetDateTime", + "encode": "rfc3339", + "wireType": { + "$id": "74", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.offsetDateTime", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.Schedule.deadLine", + "serializationOptions": { + "$id": "75", + "json": { + "$id": "76", + "name": "deadLine" + } + } + }, + { + "$id": "77", + "kind": "property", + "name": "timezone", + "serializedName": "timezone", + "doc": "The timezone for the operation", + "type": { + "$id": "78", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.Schedule.timezone", + "serializationOptions": { + "$id": "79", + "json": { + "$id": "80", + "name": "timezone" + } + } + }, + { + "$id": "81", + "kind": "property", + "name": "userRequestTimezone", + "serializedName": "timeZone", + "doc": "The timezone for the operation", + "type": { + "$id": "82", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.Schedule.timeZone", + "serializationOptions": { + "$id": "83", + "json": { + "$id": "84", + "name": "timeZone" + } + } + }, + { + "$id": "85", + "kind": "property", + "name": "deadlineType", + "serializedName": "deadlineType", + "doc": "The deadlinetype of the operation, this can either be InitiateAt or CompleteBy", + "type": { + "$ref": "2" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.Schedule.deadlineType", + "serializationOptions": { + "$id": "86", + "json": { + "$id": "87", + "name": "deadlineType" + } + } + } + ] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.SubmitDeallocateRequest.schedule", + "serializationOptions": { + "$id": "88", + "json": { + "$id": "89", + "name": "schedule" + } + } + }, + { + "$id": "90", + "kind": "property", + "name": "executionParameters", + "serializedName": "executionParameters", + "doc": "The execution parameters for the request", + "type": { + "$id": "91", + "kind": "model", + "name": "ScheduledActionExecutionParameterDetail", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ExecutionParameters", + "usage": "Input,Json", + "doc": "Extra details needed to run the user's request", + "decorators": [], + "properties": [ + { + "$id": "92", + "kind": "property", + "name": "optimizationPreference", + "serializedName": "optimizationPreference", + "doc": "Details that could optimize the user's request", + "type": { + "$ref": "10" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ExecutionParameters.optimizationPreference", + "serializationOptions": { + "$id": "93", + "json": { + "$id": "94", + "name": "optimizationPreference" + } + } + }, + { + "$id": "95", + "kind": "property", + "name": "retryPolicy", + "serializedName": "retryPolicy", + "doc": "Retry policy the user can pass", + "type": { + "$id": "96", + "kind": "model", + "name": "UserRequestRetryPolicy", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.RetryPolicy", + "usage": "Input,Output,Json", + "doc": "The retry policy for the user request", + "decorators": [], + "properties": [ + { + "$id": "97", + "kind": "property", + "name": "retryCount", + "serializedName": "retryCount", + "doc": "Retry count for user request", + "type": { + "$id": "98", + "kind": "int32", + "name": "int32", + "crossLanguageDefinitionId": "TypeSpec.int32", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.RetryPolicy.retryCount", + "serializationOptions": { + "$id": "99", + "json": { + "$id": "100", + "name": "retryCount" + } + } + }, + { + "$id": "101", + "kind": "property", + "name": "retryWindowInMinutes", + "serializedName": "retryWindowInMinutes", + "doc": "Retry window in minutes for user request", + "type": { + "$id": "102", + "kind": "int32", + "name": "int32", + "crossLanguageDefinitionId": "TypeSpec.int32", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.RetryPolicy.retryWindowInMinutes", + "serializationOptions": { + "$id": "103", + "json": { + "$id": "104", + "name": "retryWindowInMinutes" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ExecutionParameters.retryPolicy", + "serializationOptions": { + "$id": "105", + "json": { + "$id": "106", + "name": "retryPolicy" + } + } + } + ] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.SubmitDeallocateRequest.executionParameters", + "serializationOptions": { + "$id": "107", + "json": { + "$id": "108", + "name": "executionParameters" + } + } + }, + { + "$id": "109", + "kind": "property", + "name": "resources", + "serializedName": "resources", + "doc": "The resources for the request", + "type": { + "$id": "110", + "kind": "model", + "name": "UserRequestResources", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.Resources", + "usage": "Input,Json", + "doc": "The resources needed for the user request", + "decorators": [], + "properties": [ + { + "$id": "111", + "kind": "property", + "name": "ids", + "serializedName": "ids", + "doc": "The resource ids used for the request", + "type": { + "$id": "112", + "kind": "array", + "name": "Array", + "valueType": { + "$id": "113", + "kind": "string", + "name": "armResourceIdentifier", + "crossLanguageDefinitionId": "Azure.Core.armResourceIdentifier", + "baseType": { + "$id": "114", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.Resources.ids", + "serializationOptions": { + "$id": "115", + "json": { + "$id": "116", + "name": "ids" + } + } + } + ] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.SubmitDeallocateRequest.resources", + "serializationOptions": { + "$id": "117", + "json": { + "$id": "118", + "name": "resources" + } + } + }, + { + "$id": "119", + "kind": "property", + "name": "correlationId", + "serializedName": "correlationid", + "doc": "CorrelationId item", + "type": { + "$id": "120", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.SubmitDeallocateRequest.correlationid", + "serializationOptions": { + "$id": "121", + "json": { + "$id": "122", + "name": "correlationid" + } + } + } + ] + }, + { + "$ref": "66" + }, + { + "$ref": "91" + }, + { + "$ref": "96" + }, + { + "$ref": "110" + }, + { + "$id": "123", + "kind": "model", + "name": "DeallocateResourceOperationResult", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.DeallocateResourceOperationResponse", + "usage": "Output,Json", + "doc": "The response from a deallocate request", + "decorators": [], + "properties": [ + { + "$id": "124", + "kind": "property", + "name": "description", + "serializedName": "description", + "doc": "The description of the operation response", + "type": { + "$id": "125", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.DeallocateResourceOperationResponse.description", + "serializationOptions": { + "$id": "126", + "json": { + "$id": "127", + "name": "description" + } + } + }, + { + "$id": "128", + "kind": "property", + "name": "ResourceType", + "serializedName": "type", + "doc": "The type of resources used in the deallocate request eg virtual machines", + "type": { + "$id": "129", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.DeallocateResourceOperationResponse.type", + "serializationOptions": { + "$id": "130", + "json": { + "$id": "131", + "name": "type" + } + } + }, + { + "$id": "132", + "kind": "property", + "name": "location", + "serializedName": "location", + "doc": "The location of the deallocate request eg westus", + "type": { + "$id": "133", + "kind": "string", + "name": "azureLocation", + "crossLanguageDefinitionId": "Azure.Core.azureLocation", + "baseType": { + "$id": "134", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.DeallocateResourceOperationResponse.location", + "serializationOptions": { + "$id": "135", + "json": { + "$id": "136", + "name": "location" + } + } + }, + { + "$id": "137", + "kind": "property", + "name": "results", + "serializedName": "results", + "doc": "The results from the deallocate request if no errors exist", + "type": { + "$id": "138", + "kind": "array", + "name": "ArrayResourceOperation", + "valueType": { + "$id": "139", + "kind": "model", + "name": "ResourceOperationResult", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperation", + "usage": "Output,Json", + "doc": "High level response from an operation on a resource", + "decorators": [], + "properties": [ + { + "$id": "140", + "kind": "property", + "name": "resourceId", + "serializedName": "resourceId", + "doc": "Unique identifier for the resource involved in the operation, eg ArmId", + "type": { + "$id": "141", + "kind": "string", + "name": "armResourceIdentifier", + "crossLanguageDefinitionId": "Azure.Core.armResourceIdentifier", + "baseType": { + "$id": "142", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperation.resourceId", + "serializationOptions": { + "$id": "143", + "json": { + "$id": "144", + "name": "resourceId" + } + } + }, + { + "$id": "145", + "kind": "property", + "name": "errorCode", + "serializedName": "errorCode", + "doc": "Resource level error code if it exists", + "type": { + "$id": "146", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperation.errorCode", + "serializationOptions": { + "$id": "147", + "json": { + "$id": "148", + "name": "errorCode" + } + } + }, + { + "$id": "149", + "kind": "property", + "name": "errorDetails", + "serializedName": "errorDetails", + "doc": "Resource level error details if they exist", + "type": { + "$id": "150", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperation.errorDetails", + "serializationOptions": { + "$id": "151", + "json": { + "$id": "152", + "name": "errorDetails" + } + } + }, + { + "$id": "153", + "kind": "property", + "name": "operation", + "serializedName": "operation", + "doc": "Details of the operation performed on a resource", + "type": { + "$id": "154", + "kind": "model", + "name": "ResourceOperationDetails", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperationDetails", + "usage": "Output,Json", + "doc": "The details of a response from an operation on a resource", + "decorators": [], + "properties": [ + { + "$id": "155", + "kind": "property", + "name": "operationId", + "serializedName": "operationId", + "doc": "Operation identifier for the unique operation", + "type": { + "$id": "156", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperationDetails.operationId", + "serializationOptions": { + "$id": "157", + "json": { + "$id": "158", + "name": "operationId" + } + } + }, + { + "$id": "159", + "kind": "property", + "name": "resourceId", + "serializedName": "resourceId", + "doc": "Unique identifier for the resource involved in the operation, eg ArmId", + "type": { + "$id": "160", + "kind": "string", + "name": "armResourceIdentifier", + "crossLanguageDefinitionId": "Azure.Core.armResourceIdentifier", + "baseType": { + "$id": "161", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperationDetails.resourceId", + "serializationOptions": { + "$id": "162", + "json": { + "$id": "163", + "name": "resourceId" + } + } + }, + { + "$id": "164", + "kind": "property", + "name": "opType", + "serializedName": "opType", + "doc": "Type of operation performed on the resources", + "type": { + "$ref": "18" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperationDetails.opType", + "serializationOptions": { + "$id": "165", + "json": { + "$id": "166", + "name": "opType" + } + } + }, + { + "$id": "167", + "kind": "property", + "name": "subscriptionId", + "serializedName": "subscriptionId", + "doc": "Subscription id attached to the request", + "type": { + "$id": "168", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperationDetails.subscriptionId", + "serializationOptions": { + "$id": "169", + "json": { + "$id": "170", + "name": "subscriptionId" + } + } + }, + { + "$id": "171", + "kind": "property", + "name": "deadline", + "serializedName": "deadline", + "doc": "Deadline for the operation", + "type": { + "$id": "172", + "kind": "offsetDateTime", + "name": "offsetDateTime", + "encode": "rfc3339", + "wireType": { + "$id": "173", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.offsetDateTime", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperationDetails.deadline", + "serializationOptions": { + "$id": "174", + "json": { + "$id": "175", + "name": "deadline" + } + } + }, + { + "$id": "176", + "kind": "property", + "name": "deadlineType", + "serializedName": "deadlineType", + "doc": "Type of deadline of the operation", + "type": { + "$ref": "2" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperationDetails.deadlineType", + "serializationOptions": { + "$id": "177", + "json": { + "$id": "178", + "name": "deadlineType" + } + } + }, + { + "$id": "179", + "kind": "property", + "name": "state", + "serializedName": "state", + "doc": "Current state of the operation", + "type": { + "$ref": "28" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperationDetails.state", + "serializationOptions": { + "$id": "180", + "json": { + "$id": "181", + "name": "state" + } + } + }, + { + "$id": "182", + "kind": "property", + "name": "timezone", + "serializedName": "timezone", + "doc": "Timezone for the operation", + "type": { + "$id": "183", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperationDetails.timezone", + "serializationOptions": { + "$id": "184", + "json": { + "$id": "185", + "name": "timezone" + } + } + }, + { + "$id": "186", + "kind": "property", + "name": "operationTimezone", + "serializedName": "timeZone", + "doc": "Timezone for the operation", + "type": { + "$id": "187", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperationDetails.timeZone", + "serializationOptions": { + "$id": "188", + "json": { + "$id": "189", + "name": "timeZone" + } + } + }, + { + "$id": "190", + "kind": "property", + "name": "resourceOperationError", + "serializedName": "resourceOperationError", + "doc": "Operation level errors if they exist", + "type": { + "$id": "191", + "kind": "model", + "name": "ResourceOperationError", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperationError", + "usage": "Output,Json", + "doc": "These describe errors that occur at the resource level", + "decorators": [], + "properties": [ + { + "$id": "192", + "kind": "property", + "name": "errorCode", + "serializedName": "errorCode", + "doc": "Code for the error eg 404, 500", + "type": { + "$id": "193", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperationError.errorCode", + "serializationOptions": { + "$id": "194", + "json": { + "$id": "195", + "name": "errorCode" + } + } + }, + { + "$id": "196", + "kind": "property", + "name": "errorDetails", + "serializedName": "errorDetails", + "doc": "Detailed message about the error", + "type": { + "$id": "197", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperationError.errorDetails", + "serializationOptions": { + "$id": "198", + "json": { + "$id": "199", + "name": "errorDetails" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperationDetails.resourceOperationError", + "serializationOptions": { + "$id": "200", + "json": { + "$id": "201", + "name": "resourceOperationError" + } + } + }, + { + "$id": "202", + "kind": "property", + "name": "completedAt", + "serializedName": "completedAt", + "doc": "Time the operation was complete if errors are null", + "type": { + "$id": "203", + "kind": "offsetDateTime", + "name": "offsetDateTime", + "encode": "rfc3339", + "wireType": { + "$id": "204", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.offsetDateTime", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperationDetails.completedAt", + "serializationOptions": { + "$id": "205", + "json": { + "$id": "206", + "name": "completedAt" + } + } + }, + { + "$id": "207", + "kind": "property", + "name": "retryPolicy", + "serializedName": "retryPolicy", + "doc": "Retry policy the user can pass", + "type": { + "$ref": "96" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperationDetails.retryPolicy", + "serializationOptions": { + "$id": "208", + "json": { + "$id": "209", + "name": "retryPolicy" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ResourceOperation.operation", + "serializationOptions": { + "$id": "210", + "json": { + "$id": "211", + "name": "operation" + } + } + } + ] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.DeallocateResourceOperationResponse.results", + "serializationOptions": { + "$id": "212", + "json": { + "$id": "213", + "name": "results" + } + } + } + ] + }, + { + "$ref": "139" + }, + { + "$ref": "154" + }, + { + "$ref": "191" + }, + { + "$id": "214", + "kind": "model", + "name": "ErrorResponse", + "namespace": "Azure.ResourceManager.CommonTypes", + "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": "215", + "kind": "property", + "name": "error", + "serializedName": "error", + "doc": "The error object.", + "type": { + "$id": "216", + "kind": "model", + "name": "ErrorDetail", + "namespace": "Azure.ResourceManager.CommonTypes", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorDetail", + "usage": "Json,Exception", + "doc": "The error detail.", + "decorators": [], + "properties": [ + { + "$id": "217", + "kind": "property", + "name": "code", + "serializedName": "code", + "doc": "The error code.", + "type": { + "$id": "218", + "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": "219", + "json": { + "$id": "220", + "name": "code" + } + } + }, + { + "$id": "221", + "kind": "property", + "name": "message", + "serializedName": "message", + "doc": "The error message.", + "type": { + "$id": "222", + "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": "223", + "json": { + "$id": "224", + "name": "message" + } + } + }, + { + "$id": "225", + "kind": "property", + "name": "target", + "serializedName": "target", + "doc": "The error target.", + "type": { + "$id": "226", + "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": "227", + "json": { + "$id": "228", + "name": "target" + } + } + }, + { + "$id": "229", + "kind": "property", + "name": "details", + "serializedName": "details", + "doc": "The error details.", + "type": { + "$id": "230", + "kind": "array", + "name": "ArrayErrorDetail", + "valueType": { + "$ref": "216" + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorDetail.details", + "serializationOptions": { + "$id": "231", + "json": { + "$id": "232", + "name": "details" + } + } + }, + { + "$id": "233", + "kind": "property", + "name": "additionalInfo", + "serializedName": "additionalInfo", + "doc": "The error additional info.", + "type": { + "$id": "234", + "kind": "array", + "name": "ArrayErrorAdditionalInfo", + "valueType": { + "$id": "235", + "kind": "model", + "name": "ErrorAdditionalInfo", + "namespace": "Azure.ResourceManager.CommonTypes", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo", + "usage": "Json,Exception", + "doc": "The resource management error additional info.", + "decorators": [], + "properties": [ + { + "$id": "236", + "kind": "property", + "name": "type", + "serializedName": "type", + "doc": "The additional info type.", + "type": { + "$id": "237", + "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": "238", + "json": { + "$id": "239", + "name": "type" + } + } + }, + { + "$id": "240", + "kind": "property", + "name": "info", + "serializedName": "info", + "doc": "The additional info.", + "type": { + "$id": "241", + "kind": "model", + "name": "ErrorAdditionalInfoInfo", + "namespace": "Azure.ResourceManager.CommonTypes", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo.info.anonymous", + "usage": "Json,Exception", + "decorators": [], + "properties": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo.info", + "serializationOptions": { + "$id": "242", + "json": { + "$id": "243", + "name": "info" + } + } + } + ] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorDetail.additionalInfo", + "serializationOptions": { + "$id": "244", + "json": { + "$id": "245", + "name": "additionalInfo" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorResponse.error", + "serializationOptions": { + "$id": "246", + "json": { + "$id": "247", + "name": "error" + } + } + } + ] + }, + { + "$ref": "216" + }, + { + "$ref": "235" + }, + { + "$ref": "241" + }, + { + "$id": "248", + "kind": "model", + "name": "SubmitHibernateRequest", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.SubmitHibernateRequest", + "usage": "Input,Json", + "doc": "This is the request for hibernate", + "decorators": [], + "properties": [ + { + "$id": "249", + "kind": "property", + "name": "schedule", + "serializedName": "schedule", + "doc": "The schedule for the request", + "type": { + "$ref": "66" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.SubmitHibernateRequest.schedule", + "serializationOptions": { + "$id": "250", + "json": { + "$id": "251", + "name": "schedule" + } + } + }, + { + "$id": "252", + "kind": "property", + "name": "executionParameters", + "serializedName": "executionParameters", + "doc": "The execution parameters for the request", + "type": { + "$ref": "91" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.SubmitHibernateRequest.executionParameters", + "serializationOptions": { + "$id": "253", + "json": { + "$id": "254", + "name": "executionParameters" + } + } + }, + { + "$id": "255", + "kind": "property", + "name": "resources", + "serializedName": "resources", + "doc": "The resources for the request", + "type": { + "$ref": "110" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.SubmitHibernateRequest.resources", + "serializationOptions": { + "$id": "256", + "json": { + "$id": "257", + "name": "resources" + } + } + }, + { + "$id": "258", + "kind": "property", + "name": "correlationId", + "serializedName": "correlationid", + "doc": "CorrelationId item", + "type": { + "$id": "259", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.SubmitHibernateRequest.correlationid", + "serializationOptions": { + "$id": "260", + "json": { + "$id": "261", + "name": "correlationid" + } + } + } + ] + }, + { + "$id": "262", + "kind": "model", + "name": "HibernateResourceOperationResult", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.HibernateResourceOperationResponse", + "usage": "Output,Json", + "doc": "The response from a Hibernate request", + "decorators": [], + "properties": [ + { + "$id": "263", + "kind": "property", + "name": "description", + "serializedName": "description", + "doc": "The description of the operation response", + "type": { + "$id": "264", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.HibernateResourceOperationResponse.description", + "serializationOptions": { + "$id": "265", + "json": { + "$id": "266", + "name": "description" + } + } + }, + { + "$id": "267", + "kind": "property", + "name": "ResourceType", + "serializedName": "type", + "doc": "The type of resources used in the Hibernate request eg virtual machines", + "type": { + "$id": "268", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.HibernateResourceOperationResponse.type", + "serializationOptions": { + "$id": "269", + "json": { + "$id": "270", + "name": "type" + } + } + }, + { + "$id": "271", + "kind": "property", + "name": "location", + "serializedName": "location", + "doc": "The location of the Hibernate request eg westus", + "type": { + "$id": "272", + "kind": "string", + "name": "azureLocation", + "crossLanguageDefinitionId": "Azure.Core.azureLocation", + "baseType": { + "$id": "273", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.HibernateResourceOperationResponse.location", + "serializationOptions": { + "$id": "274", + "json": { + "$id": "275", + "name": "location" + } + } + }, + { + "$id": "276", + "kind": "property", + "name": "results", + "serializedName": "results", + "doc": "The results from the Hibernate request if no errors exist", + "type": { + "$id": "277", + "kind": "array", + "name": "ArrayResourceOperation", + "valueType": { + "$ref": "139" + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.HibernateResourceOperationResponse.results", + "serializationOptions": { + "$id": "278", + "json": { + "$id": "279", + "name": "results" + } + } + } + ] + }, + { + "$id": "280", + "kind": "model", + "name": "SubmitStartRequest", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.SubmitStartRequest", + "usage": "Input,Json", + "doc": "This is the request for start", + "decorators": [], + "properties": [ + { + "$id": "281", + "kind": "property", + "name": "schedule", + "serializedName": "schedule", + "doc": "The schedule for the request", + "type": { + "$ref": "66" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.SubmitStartRequest.schedule", + "serializationOptions": { + "$id": "282", + "json": { + "$id": "283", + "name": "schedule" + } + } + }, + { + "$id": "284", + "kind": "property", + "name": "executionParameters", + "serializedName": "executionParameters", + "doc": "The execution parameters for the request", + "type": { + "$ref": "91" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.SubmitStartRequest.executionParameters", + "serializationOptions": { + "$id": "285", + "json": { + "$id": "286", + "name": "executionParameters" + } + } + }, + { + "$id": "287", + "kind": "property", + "name": "resources", + "serializedName": "resources", + "doc": "The resources for the request", + "type": { + "$ref": "110" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.SubmitStartRequest.resources", + "serializationOptions": { + "$id": "288", + "json": { + "$id": "289", + "name": "resources" + } + } + }, + { + "$id": "290", + "kind": "property", + "name": "correlationId", + "serializedName": "correlationid", + "doc": "CorrelationId item", + "type": { + "$id": "291", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.SubmitStartRequest.correlationid", + "serializationOptions": { + "$id": "292", + "json": { + "$id": "293", + "name": "correlationid" + } + } + } + ] + }, + { + "$id": "294", + "kind": "model", + "name": "StartResourceOperationResult", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.StartResourceOperationResponse", + "usage": "Output,Json", + "doc": "The response from a start request", + "decorators": [], + "properties": [ + { + "$id": "295", + "kind": "property", + "name": "description", + "serializedName": "description", + "doc": "The description of the operation response", + "type": { + "$id": "296", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.StartResourceOperationResponse.description", + "serializationOptions": { + "$id": "297", + "json": { + "$id": "298", + "name": "description" + } + } + }, + { + "$id": "299", + "kind": "property", + "name": "ResourceType", + "serializedName": "type", + "doc": "The type of resources used in the start request eg virtual machines", + "type": { + "$id": "300", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.StartResourceOperationResponse.type", + "serializationOptions": { + "$id": "301", + "json": { + "$id": "302", + "name": "type" + } + } + }, + { + "$id": "303", + "kind": "property", + "name": "location", + "serializedName": "location", + "doc": "The location of the start request eg westus", + "type": { + "$id": "304", + "kind": "string", + "name": "azureLocation", + "crossLanguageDefinitionId": "Azure.Core.azureLocation", + "baseType": { + "$id": "305", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.StartResourceOperationResponse.location", + "serializationOptions": { + "$id": "306", + "json": { + "$id": "307", + "name": "location" + } + } + }, + { + "$id": "308", + "kind": "property", + "name": "results", + "serializedName": "results", + "doc": "The results from the start request if no errors exist", + "type": { + "$id": "309", + "kind": "array", + "name": "ArrayResourceOperation", + "valueType": { + "$ref": "139" + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.StartResourceOperationResponse.results", + "serializationOptions": { + "$id": "310", + "json": { + "$id": "311", + "name": "results" + } + } + } + ] + }, + { + "$id": "312", + "kind": "model", + "name": "ExecuteDeallocateRequest", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ExecuteDeallocateRequest", + "usage": "Input,Json", + "doc": "The ExecuteDeallocateRequest request for executeDeallocate operations", + "decorators": [], + "properties": [ + { + "$id": "313", + "kind": "property", + "name": "executionParameters", + "serializedName": "executionParameters", + "doc": "The execution parameters for the request", + "type": { + "$ref": "91" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ExecuteDeallocateRequest.executionParameters", + "serializationOptions": { + "$id": "314", + "json": { + "$id": "315", + "name": "executionParameters" + } + } + }, + { + "$id": "316", + "kind": "property", + "name": "resources", + "serializedName": "resources", + "doc": "The resources for the request", + "type": { + "$ref": "110" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ExecuteDeallocateRequest.resources", + "serializationOptions": { + "$id": "317", + "json": { + "$id": "318", + "name": "resources" + } + } + }, + { + "$id": "319", + "kind": "property", + "name": "correlationId", + "serializedName": "correlationid", + "doc": "CorrelationId item", + "type": { + "$id": "320", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ExecuteDeallocateRequest.correlationid", + "serializationOptions": { + "$id": "321", + "json": { + "$id": "322", + "name": "correlationid" + } + } + } + ] + }, + { + "$id": "323", + "kind": "model", + "name": "ExecuteHibernateRequest", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ExecuteHibernateRequest", + "usage": "Input,Json", + "doc": "The ExecuteHibernateRequest request for executeHibernate operations", + "decorators": [], + "properties": [ + { + "$id": "324", + "kind": "property", + "name": "executionParameters", + "serializedName": "executionParameters", + "doc": "The execution parameters for the request", + "type": { + "$ref": "91" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ExecuteHibernateRequest.executionParameters", + "serializationOptions": { + "$id": "325", + "json": { + "$id": "326", + "name": "executionParameters" + } + } + }, + { + "$id": "327", + "kind": "property", + "name": "resources", + "serializedName": "resources", + "doc": "The resources for the request", + "type": { + "$ref": "110" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ExecuteHibernateRequest.resources", + "serializationOptions": { + "$id": "328", + "json": { + "$id": "329", + "name": "resources" + } + } + }, + { + "$id": "330", + "kind": "property", + "name": "correlationId", + "serializedName": "correlationid", + "doc": "CorrelationId item", + "type": { + "$id": "331", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ExecuteHibernateRequest.correlationid", + "serializationOptions": { + "$id": "332", + "json": { + "$id": "333", + "name": "correlationid" + } + } + } + ] + }, + { + "$id": "334", + "kind": "model", + "name": "ExecuteStartRequest", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ExecuteStartRequest", + "usage": "Input,Json", + "doc": "The ExecuteStartRequest request for executeStart operations", + "decorators": [], + "properties": [ + { + "$id": "335", + "kind": "property", + "name": "executionParameters", + "serializedName": "executionParameters", + "doc": "The execution parameters for the request", + "type": { + "$ref": "91" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ExecuteStartRequest.executionParameters", + "serializationOptions": { + "$id": "336", + "json": { + "$id": "337", + "name": "executionParameters" + } + } + }, + { + "$id": "338", + "kind": "property", + "name": "resources", + "serializedName": "resources", + "doc": "The resources for the request", + "type": { + "$ref": "110" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ExecuteStartRequest.resources", + "serializationOptions": { + "$id": "339", + "json": { + "$id": "340", + "name": "resources" + } + } + }, + { + "$id": "341", + "kind": "property", + "name": "correlationId", + "serializedName": "correlationid", + "doc": "CorrelationId item", + "type": { + "$id": "342", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ExecuteStartRequest.correlationid", + "serializationOptions": { + "$id": "343", + "json": { + "$id": "344", + "name": "correlationid" + } + } + } + ] + }, + { + "$id": "345", + "kind": "model", + "name": "GetOperationStatusRequest", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.GetOperationStatusRequest", + "usage": "Input,Json", + "doc": "This is the request to get operation status using operationids", + "decorators": [], + "properties": [ + { + "$id": "346", + "kind": "property", + "name": "operationIds", + "serializedName": "operationIds", + "doc": "The list of operation ids to get the status of", + "type": { + "$id": "347", + "kind": "array", + "name": "Array", + "valueType": { + "$id": "348", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.GetOperationStatusRequest.operationIds", + "serializationOptions": { + "$id": "349", + "json": { + "$id": "350", + "name": "operationIds" + } + } + }, + { + "$id": "351", + "kind": "property", + "name": "correlationId", + "serializedName": "correlationid", + "doc": "CorrelationId item", + "type": { + "$id": "352", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.GetOperationStatusRequest.correlationid", + "serializationOptions": { + "$id": "353", + "json": { + "$id": "354", + "name": "correlationid" + } + } + } + ] + }, + { + "$id": "355", + "kind": "model", + "name": "GetOperationStatusResult", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.GetOperationStatusResponse", + "usage": "Output,Json", + "doc": "This is the response from a get operations status request", + "decorators": [], + "properties": [ + { + "$id": "356", + "kind": "property", + "name": "results", + "serializedName": "results", + "doc": "An array of resource operations based on their operation ids", + "type": { + "$id": "357", + "kind": "array", + "name": "ArrayResourceOperation", + "valueType": { + "$ref": "139" + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.GetOperationStatusResponse.results", + "serializationOptions": { + "$id": "358", + "json": { + "$id": "359", + "name": "results" + } + } + } + ] + }, + { + "$id": "360", + "kind": "model", + "name": "CancelOperationsRequest", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.CancelOperationsRequest", + "usage": "Input,Json", + "doc": "This is the request to cancel running operations in scheduled actions using the operation ids", + "decorators": [], + "properties": [ + { + "$id": "361", + "kind": "property", + "name": "operationIds", + "serializedName": "operationIds", + "doc": "The list of operation ids to cancel operations on", + "type": { + "$id": "362", + "kind": "array", + "name": "Array", + "valueType": { + "$id": "363", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.CancelOperationsRequest.operationIds", + "serializationOptions": { + "$id": "364", + "json": { + "$id": "365", + "name": "operationIds" + } + } + }, + { + "$id": "366", + "kind": "property", + "name": "correlationId", + "serializedName": "correlationid", + "doc": "CorrelationId item", + "type": { + "$id": "367", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.CancelOperationsRequest.correlationid", + "serializationOptions": { + "$id": "368", + "json": { + "$id": "369", + "name": "correlationid" + } + } + } + ] + }, + { + "$id": "370", + "kind": "model", + "name": "CancelOperationsResult", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.CancelOperationsResponse", + "usage": "Output,Json", + "doc": "This is the response from a cancel operations request", + "decorators": [], + "properties": [ + { + "$id": "371", + "kind": "property", + "name": "results", + "serializedName": "results", + "doc": "An array of resource operations that were successfully cancelled", + "type": { + "$id": "372", + "kind": "array", + "name": "ArrayResourceOperation", + "valueType": { + "$ref": "139" + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.CancelOperationsResponse.results", + "serializationOptions": { + "$id": "373", + "json": { + "$id": "374", + "name": "results" + } + } + } + ] + }, + { + "$id": "375", + "kind": "model", + "name": "GetOperationErrorsRequest", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.GetOperationErrorsRequest", + "usage": "Input,Json", + "doc": "This is the request to get errors per vm operations", + "decorators": [], + "properties": [ + { + "$id": "376", + "kind": "property", + "name": "operationIds", + "serializedName": "operationIds", + "doc": "The list of operation ids to query errors of", + "type": { + "$id": "377", + "kind": "array", + "name": "Array", + "valueType": { + "$id": "378", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.GetOperationErrorsRequest.operationIds", + "serializationOptions": { + "$id": "379", + "json": { + "$id": "380", + "name": "operationIds" + } + } + } + ] + }, + { + "$id": "381", + "kind": "model", + "name": "GetOperationErrorsResult", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.GetOperationErrorsResponse", + "usage": "Output,Json", + "doc": "This is the response from a get operations errors request", + "decorators": [], + "properties": [ + { + "$id": "382", + "kind": "property", + "name": "results", + "serializedName": "results", + "doc": "An array of operationids and their corresponding errors if any", + "type": { + "$id": "383", + "kind": "array", + "name": "ArrayOperationErrorsResult", + "valueType": { + "$id": "384", + "kind": "model", + "name": "OperationErrorsResult", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.OperationErrorsResult", + "usage": "Output,Json", + "doc": "This is the first level of operation errors from the request when clients get errors per vm operation", + "decorators": [], + "properties": [ + { + "$id": "385", + "kind": "property", + "name": "operationId", + "serializedName": "operationId", + "doc": "The operationId identifying a vm operation", + "type": { + "$id": "386", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.OperationErrorsResult.operationId", + "serializationOptions": { + "$id": "387", + "json": { + "$id": "388", + "name": "operationId" + } + } + }, + { + "$id": "389", + "kind": "property", + "name": "creationTime", + "serializedName": "creationTime", + "doc": "The creation time of the error result", + "type": { + "$id": "390", + "kind": "offsetDateTime", + "name": "offsetDateTime", + "encode": "rfc3339", + "wireType": { + "$id": "391", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.offsetDateTime", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.OperationErrorsResult.creationTime", + "serializationOptions": { + "$id": "392", + "json": { + "$id": "393", + "name": "creationTime" + } + } + }, + { + "$id": "394", + "kind": "property", + "name": "activationTime", + "serializedName": "activationTime", + "doc": "The activation time of a vm operation", + "type": { + "$id": "395", + "kind": "offsetDateTime", + "name": "offsetDateTime", + "encode": "rfc3339", + "wireType": { + "$id": "396", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.offsetDateTime", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.OperationErrorsResult.activationTime", + "serializationOptions": { + "$id": "397", + "json": { + "$id": "398", + "name": "activationTime" + } + } + }, + { + "$id": "399", + "kind": "property", + "name": "completedAt", + "serializedName": "completedAt", + "doc": "The completion time of the operation if the operation was completed", + "type": { + "$id": "400", + "kind": "offsetDateTime", + "name": "offsetDateTime", + "encode": "rfc3339", + "wireType": { + "$id": "401", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.offsetDateTime", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.OperationErrorsResult.completedAt", + "serializationOptions": { + "$id": "402", + "json": { + "$id": "403", + "name": "completedAt" + } + } + }, + { + "$id": "404", + "kind": "property", + "name": "operationErrors", + "serializedName": "operationErrors", + "doc": "A list of errors associated with the operationid", + "type": { + "$id": "405", + "kind": "array", + "name": "ArrayOperationErrorDetails", + "valueType": { + "$id": "406", + "kind": "model", + "name": "OperationErrorDetails", + "namespace": "Microsoft.ComputeSchedule", + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.OperationErrorDetails", + "usage": "Output,Json", + "doc": "This defines a list of operation errors associated with a unique operationId", + "decorators": [], + "properties": [ + { + "$id": "407", + "kind": "property", + "name": "errorCode", + "serializedName": "errorCode", + "doc": "The error code of the operation", + "type": { + "$id": "408", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.OperationErrorDetails.errorCode", + "serializationOptions": { + "$id": "409", + "json": { + "$id": "410", + "name": "errorCode" + } + } + }, + { + "$id": "411", + "kind": "property", + "name": "errorDetails", + "serializedName": "errorDetails", + "doc": "The error details of the operation", + "type": { + "$id": "412", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.OperationErrorDetails.errorDetails", + "serializationOptions": { + "$id": "413", + "json": { + "$id": "414", + "name": "errorDetails" + } + } + }, + { + "$id": "415", + "kind": "property", + "name": "timestamp", + "serializedName": "timestamp", + "doc": "The timestamp of the error occurence", + "type": { + "$id": "416", + "kind": "offsetDateTime", + "name": "offsetDateTime", + "encode": "rfc3339", + "wireType": { + "$id": "417", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.offsetDateTime", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.OperationErrorDetails.timestamp", + "serializationOptions": { + "$id": "418", + "json": { + "$id": "419", + "name": "timestamp" + } + } + }, + { + "$id": "420", + "kind": "property", + "name": "errorDetailsTimestamp", + "serializedName": "timeStamp", + "doc": "The timestamp of the error occurence", + "type": { + "$id": "421", + "kind": "offsetDateTime", + "name": "offsetDateTime", + "encode": "rfc3339", + "wireType": { + "$id": "422", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.offsetDateTime", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.OperationErrorDetails.timeStamp", + "serializationOptions": { + "$id": "423", + "json": { + "$id": "424", + "name": "timeStamp" + } + } + }, + { + "$id": "425", + "kind": "property", + "name": "azureOperationName", + "serializedName": "azureOperationName", + "doc": "The compute operationid of the Start/Deallocate/Hibernate request", + "type": { + "$id": "426", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.OperationErrorDetails.azureOperationName", + "serializationOptions": { + "$id": "427", + "json": { + "$id": "428", + "name": "azureOperationName" + } + } + }, + { + "$id": "429", + "kind": "property", + "name": "crpOperationId", + "serializedName": "crpOperationId", + "doc": "The compute operationid of the Start/Deallocate/Hibernate request", + "type": { + "$id": "430", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.OperationErrorDetails.crpOperationId", + "serializationOptions": { + "$id": "431", + "json": { + "$id": "432", + "name": "crpOperationId" + } + } + } + ] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.OperationErrorsResult.operationErrors", + "serializationOptions": { + "$id": "433", + "json": { + "$id": "434", + "name": "operationErrors" + } + } + }, + { + "$id": "435", + "kind": "property", + "name": "requestErrorCode", + "serializedName": "requestErrorCode", + "doc": "Request level error code", + "type": { + "$id": "436", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.OperationErrorsResult.requestErrorCode", + "serializationOptions": { + "$id": "437", + "json": { + "$id": "438", + "name": "requestErrorCode" + } + } + }, + { + "$id": "439", + "kind": "property", + "name": "requestErrorDetails", + "serializedName": "requestErrorDetails", + "doc": "Request level error details", + "type": { + "$id": "440", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.OperationErrorsResult.requestErrorDetails", + "serializationOptions": { + "$id": "441", + "json": { + "$id": "442", + "name": "requestErrorDetails" + } + } + } + ] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.GetOperationErrorsResponse.results", + "serializationOptions": { + "$id": "443", + "json": { + "$id": "444", + "name": "results" + } + } + } + ] + }, + { + "$ref": "384" + }, + { + "$ref": "406" + }, + { + "$id": "445", + "kind": "model", + "name": "OperationListResult", + "namespace": "Azure.ResourceManager.CommonTypes", + "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": "446", + "kind": "property", + "name": "value", + "serializedName": "value", + "doc": "The Operation items on this page", + "type": { + "$id": "447", + "kind": "array", + "name": "ArrayOperation", + "valueType": { + "$id": "448", + "kind": "model", + "name": "Operation", + "namespace": "Azure.ResourceManager.CommonTypes", + "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": "449", + "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": "450", + "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": "451", + "json": { + "$id": "452", + "name": "name" + } + } + }, + { + "$id": "453", + "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": "454", + "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": "455", + "json": { + "$id": "456", + "name": "isDataAction" + } + } + }, + { + "$id": "457", + "kind": "property", + "name": "display", + "serializedName": "display", + "doc": "Localized display information for this particular operation.", + "type": { + "$id": "458", + "kind": "model", + "name": "OperationDisplay", + "namespace": "Azure.ResourceManager.CommonTypes", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.OperationDisplay", + "usage": "Output,Json", + "doc": "Localized display information for and operation.", + "decorators": [], + "properties": [ + { + "$id": "459", + "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": "460", + "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": "461", + "json": { + "$id": "462", + "name": "provider" + } + } + }, + { + "$id": "463", + "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": "464", + "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": "465", + "json": { + "$id": "466", + "name": "resource" + } + } + }, + { + "$id": "467", + "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": "468", + "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": "469", + "json": { + "$id": "470", + "name": "operation" + } + } + }, + { + "$id": "471", + "kind": "property", + "name": "description", + "serializedName": "description", + "doc": "The short, localized friendly description of the operation; suitable for tool tips and detailed views.", + "type": { + "$id": "472", + "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": "473", + "json": { + "$id": "474", + "name": "description" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Operation.display", + "serializationOptions": { + "$id": "475", + "json": { + "$id": "476", + "name": "display" + } + } + }, + { + "$id": "477", + "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": "48" + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Operation.origin", + "serializationOptions": { + "$id": "478", + "json": { + "$id": "479", + "name": "origin" + } + } + }, + { + "$id": "480", + "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": "56" + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Operation.actionType", + "serializationOptions": { + "$id": "481", + "json": { + "$id": "482", + "name": "actionType" + } + } + } + ] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.OperationListResult.value", + "serializationOptions": { + "$id": "483", + "json": { + "$id": "484", + "name": "value" + } + } + }, + { + "$id": "485", + "kind": "property", + "name": "nextLink", + "serializedName": "nextLink", + "doc": "The link to the next page of items", + "type": { + "$id": "486", + "kind": "url", + "name": "ResourceLocation", + "crossLanguageDefinitionId": "TypeSpec.Rest.ResourceLocation", + "baseType": { + "$id": "487", + "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": "488", + "json": { + "$id": "489", + "name": "nextLink" + } + } + } + ] + }, + { + "$ref": "448" + }, + { + "$ref": "458" + } + ], + "clients": [ + { + "$id": "490", + "name": "ComputeScheduleClient", + "namespace": "Microsoft.ComputeSchedule", + "doc": "Microsoft.ComputeSchedule Resource Provider management API.", + "operations": [], + "parameters": [ + { + "$id": "491", + "name": "endpoint", + "nameInRequest": "endpoint", + "doc": "Service host", + "type": { + "$id": "492", + "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": "493", + "type": { + "$id": "494", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "https://management.azure.com" + } + } + ], + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule" + }, + { + "$id": "495", + "name": "Operations", + "namespace": "Microsoft.ComputeSchedule", + "operations": [ + { + "$id": "496", + "name": "list", + "resourceName": "Operations", + "doc": "List the operations for the provider", + "accessibility": "public", + "parameters": [ + { + "$id": "497", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "498", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "499", + "type": { + "$id": "500", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-10-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "501", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "502", + "kind": "constant", + "valueType": { + "$id": "503", + "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": "504", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "445" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "GET", + "uri": "{endpoint}", + "path": "/providers/Microsoft.ComputeSchedule/operations", + "bufferResponse": true, + "paging": { + "$id": "505", + "itemPropertySegments": [ + "value" + ], + "nextLink": { + "$id": "506", + "responseSegments": [ + "nextLink" + ], + "responseLocation": "Body" + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Azure.ResourceManager.Operations.list", + "decorators": [], + "examples": [ + { + "$id": "507", + "kind": "http", + "name": "Operations_List", + "description": "Operations_List", + "filePath": "2024-10-01/Operations_List.json", + "parameters": [ + { + "$id": "508", + "parameter": { + "$ref": "497" + }, + "value": { + "$id": "509", + "kind": "string", + "type": { + "$ref": "498" + }, + "value": "2024-10-01" + } + } + ], + "responses": [ + { + "$id": "510", + "response": { + "$ref": "504" + }, + "statusCode": 200, + "bodyValue": { + "$id": "511", + "kind": "model", + "type": { + "$ref": "445" + }, + "value": { + "$id": "512", + "value": { + "$id": "513", + "kind": "array", + "type": { + "$ref": "447" + }, + "value": [ + { + "$id": "514", + "kind": "model", + "type": { + "$ref": "448" + }, + "value": { + "$id": "515", + "name": { + "$id": "516", + "kind": "string", + "type": { + "$ref": "450" + }, + "value": "mtiwosbky" + }, + "isDataAction": { + "$id": "517", + "kind": "boolean", + "type": { + "$ref": "454" + }, + "value": true + }, + "display": { + "$id": "518", + "kind": "model", + "type": { + "$ref": "458" + }, + "value": { + "$id": "519", + "provider": { + "$id": "520", + "kind": "string", + "type": { + "$ref": "460" + }, + "value": "vtlhmqtfhlyllnplzpdpq" + }, + "resource": { + "$id": "521", + "kind": "string", + "type": { + "$ref": "464" + }, + "value": "epj" + }, + "operation": { + "$id": "522", + "kind": "string", + "type": { + "$ref": "468" + }, + "value": "tuneyqwanedwnnbztrmq" + }, + "description": { + "$id": "523", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "moyje" + } + } + }, + "origin": { + "$id": "524", + "kind": "string", + "type": { + "$ref": "48" + }, + "value": "user" + }, + "actionType": { + "$id": "525", + "kind": "string", + "type": { + "$ref": "56" + }, + "value": "Internal" + } + } + } + ] + }, + "nextLink": { + "$id": "526", + "kind": "string", + "type": { + "$ref": "486" + }, + "value": "https://microsoft.com/a" + } + } + } + } + ] + } + ] + } + ], + "parent": "ComputeScheduleClient", + "parameters": [ + { + "$id": "527", + "name": "endpoint", + "nameInRequest": "endpoint", + "doc": "Service host", + "type": { + "$id": "528", + "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": "529", + "type": { + "$id": "530", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "https://management.azure.com" + } + } + ], + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.Operations" + }, + { + "$id": "531", + "name": "ScheduledActions", + "namespace": "Microsoft.ComputeSchedule", + "operations": [ + { + "$id": "532", + "name": "SubmitVirtualMachineDeallocate", + "resourceName": "ScheduledActions", + "doc": "VirtualMachinesSubmitDeallocate: Schedule deallocate operation for a batch of virtual machines at datetime in future.", + "accessibility": "public", + "parameters": [ + { + "$id": "533", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "534", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "535", + "type": { + "$id": "536", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-10-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "537", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "538", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "539", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "540", + "name": "locationparameter", + "nameInRequest": "locationparameter", + "doc": "The location name.", + "type": { + "$id": "541", + "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": "542", + "name": "contentType", + "nameInRequest": "Content-Type", + "doc": "Body parameter's content type. Known values are application/json", + "type": { + "$id": "543", + "kind": "constant", + "valueType": { + "$id": "544", + "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": "545", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "546", + "kind": "constant", + "valueType": { + "$id": "547", + "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": "548", + "name": "requestBody", + "nameInRequest": "requestBody", + "doc": "The request body", + "type": { + "$ref": "64" + }, + "location": "Body", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "549", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "123" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "POST", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesSubmitDeallocate", + "requestMediaTypes": [ + "application/json" + ], + "bufferResponse": true, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ScheduledActions.virtualMachinesSubmitDeallocate", + "decorators": [], + "examples": [ + { + "$id": "550", + "kind": "http", + "name": "ScheduledActions_VirtualMachinesSubmitDeallocate", + "description": "ScheduledActions_VirtualMachinesSubmitDeallocate", + "filePath": "2024-10-01/ScheduledActions_VirtualMachinesSubmitDeallocate.json", + "parameters": [ + { + "$id": "551", + "parameter": { + "$ref": "533" + }, + "value": { + "$id": "552", + "kind": "string", + "type": { + "$ref": "534" + }, + "value": "2024-10-01" + } + }, + { + "$id": "553", + "parameter": { + "$ref": "537" + }, + "value": { + "$id": "554", + "kind": "string", + "type": { + "$ref": "538" + }, + "value": "D8E30CC0-2763-4FCC-84A8-3C5659281032" + } + }, + { + "$id": "555", + "parameter": { + "$ref": "540" + }, + "value": { + "$id": "556", + "kind": "string", + "type": { + "$ref": "541" + }, + "value": "eastus2euap" + } + }, + { + "$id": "557", + "parameter": { + "$ref": "548" + }, + "value": { + "$id": "558", + "kind": "model", + "type": { + "$ref": "64" + }, + "value": { + "$id": "559", + "schedule": { + "$id": "560", + "kind": "model", + "type": { + "$ref": "66" + }, + "value": { + "$id": "561", + "deadline": { + "$id": "562", + "kind": "string", + "type": { + "$ref": "68" + }, + "value": "2024-11-01T17:52:54.215Z" + }, + "timezone": { + "$id": "563", + "kind": "string", + "type": { + "$ref": "78" + }, + "value": "UTC" + }, + "deadlineType": { + "$id": "564", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "InitiateAt" + } + } + }, + "executionParameters": { + "$id": "565", + "kind": "model", + "type": { + "$ref": "91" + }, + "value": { + "$id": "566", + "retryPolicy": { + "$id": "567", + "kind": "model", + "type": { + "$ref": "96" + }, + "value": { + "$id": "568", + "retryCount": { + "$id": "569", + "kind": "number", + "type": { + "$ref": "98" + }, + "value": 4 + }, + "retryWindowInMinutes": { + "$id": "570", + "kind": "number", + "type": { + "$ref": "102" + }, + "value": 27 + } + } + } + } + }, + "resources": { + "$id": "571", + "kind": "model", + "type": { + "$ref": "110" + }, + "value": { + "$id": "572", + "ids": { + "$id": "573", + "kind": "array", + "type": { + "$ref": "112" + }, + "value": [ + { + "$id": "574", + "kind": "string", + "type": { + "$ref": "113" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + } + ] + } + } + }, + "correlationid": { + "$id": "575", + "kind": "string", + "type": { + "$ref": "120" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + } + } + } + } + ], + "responses": [ + { + "$id": "576", + "response": { + "$ref": "549" + }, + "statusCode": 200, + "bodyValue": { + "$id": "577", + "kind": "model", + "type": { + "$ref": "123" + }, + "value": { + "$id": "578", + "type": { + "$id": "579", + "kind": "string", + "type": { + "$ref": "129" + }, + "value": "virtualMachine" + }, + "location": { + "$id": "580", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "eastus2euap" + }, + "results": { + "$id": "581", + "kind": "array", + "type": { + "$ref": "138" + }, + "value": [ + { + "$id": "582", + "kind": "model", + "type": { + "$ref": "139" + }, + "value": { + "$id": "583", + "resourceId": { + "$id": "584", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + }, + "errorCode": { + "$id": "585", + "kind": "string", + "type": { + "$ref": "146" + }, + "value": "null" + }, + "errorDetails": { + "$id": "586", + "kind": "string", + "type": { + "$ref": "150" + }, + "value": "null" + }, + "operation": { + "$id": "587", + "kind": "model", + "type": { + "$ref": "154" + }, + "value": { + "$id": "588", + "operationId": { + "$id": "589", + "kind": "string", + "type": { + "$ref": "156" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + }, + "resourceId": { + "$id": "590", + "kind": "string", + "type": { + "$ref": "160" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + }, + "opType": { + "$id": "591", + "kind": "string", + "type": { + "$ref": "18" + }, + "value": "Deallocate" + }, + "subscriptionId": { + "$id": "592", + "kind": "string", + "type": { + "$ref": "168" + }, + "value": "D8E30CC0-2763-4FCC-84A8-3C5659281032" + }, + "deadline": { + "$id": "593", + "kind": "string", + "type": { + "$ref": "172" + }, + "value": "2024-11-01T17:52:53.667Z" + }, + "deadlineType": { + "$id": "594", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "InitiateAt" + }, + "state": { + "$id": "595", + "kind": "string", + "type": { + "$ref": "28" + }, + "value": "Succeeded" + }, + "timezone": { + "$id": "596", + "kind": "string", + "type": { + "$ref": "183" + }, + "value": "UTC" + }, + "resourceOperationError": { + "$id": "597", + "kind": "model", + "type": { + "$ref": "191" + }, + "value": { + "$id": "598", + "errorCode": { + "$id": "599", + "kind": "string", + "type": { + "$ref": "193" + }, + "value": "null" + }, + "errorDetails": { + "$id": "600", + "kind": "string", + "type": { + "$ref": "197" + }, + "value": "null" + } + } + }, + "completedAt": { + "$id": "601", + "kind": "string", + "type": { + "$ref": "203" + }, + "value": "2024-11-01T17:52:53.668Z" + }, + "retryPolicy": { + "$id": "602", + "kind": "model", + "type": { + "$ref": "96" + }, + "value": { + "$id": "603", + "retryCount": { + "$id": "604", + "kind": "number", + "type": { + "$ref": "98" + }, + "value": 4 + }, + "retryWindowInMinutes": { + "$id": "605", + "kind": "number", + "type": { + "$ref": "102" + }, + "value": 27 + } + } + }, + "timeZone": { + "$id": "606", + "kind": "string", + "type": { + "$ref": "187" + }, + "value": "UTC" + } + } + } + } + } + ] + }, + "description": { + "$id": "607", + "kind": "string", + "type": { + "$ref": "125" + }, + "value": "Deallocate Resource Request" + } + } + } + } + ] + } + ] + }, + { + "$id": "608", + "name": "SubmitVirtualMachineHibernate", + "resourceName": "ScheduledActions", + "doc": "VirtualMachinesSubmitHibernate: Schedule hibernate operation for a batch of virtual machines at datetime in future.", + "accessibility": "public", + "parameters": [ + { + "$id": "609", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "610", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "611", + "type": { + "$id": "612", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-10-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "613", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "614", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "615", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "616", + "name": "locationparameter", + "nameInRequest": "locationparameter", + "doc": "The location name.", + "type": { + "$id": "617", + "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": "618", + "name": "contentType", + "nameInRequest": "Content-Type", + "doc": "Body parameter's content type. Known values are application/json", + "type": { + "$id": "619", + "kind": "constant", + "valueType": { + "$id": "620", + "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": "621", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "622", + "kind": "constant", + "valueType": { + "$id": "623", + "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": "624", + "name": "requestBody", + "nameInRequest": "requestBody", + "doc": "The request body", + "type": { + "$ref": "248" + }, + "location": "Body", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "625", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "262" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "POST", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesSubmitHibernate", + "requestMediaTypes": [ + "application/json" + ], + "bufferResponse": true, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ScheduledActions.virtualMachinesSubmitHibernate", + "decorators": [], + "examples": [ + { + "$id": "626", + "kind": "http", + "name": "ScheduledActions_VirtualMachinesSubmitHibernate", + "description": "ScheduledActions_VirtualMachinesSubmitHibernate", + "filePath": "2024-10-01/ScheduledActions_VirtualMachinesSubmitHibernate.json", + "parameters": [ + { + "$id": "627", + "parameter": { + "$ref": "609" + }, + "value": { + "$id": "628", + "kind": "string", + "type": { + "$ref": "610" + }, + "value": "2024-10-01" + } + }, + { + "$id": "629", + "parameter": { + "$ref": "613" + }, + "value": { + "$id": "630", + "kind": "string", + "type": { + "$ref": "614" + }, + "value": "D8E30CC0-2763-4FCC-84A8-3C5659281032" + } + }, + { + "$id": "631", + "parameter": { + "$ref": "616" + }, + "value": { + "$id": "632", + "kind": "string", + "type": { + "$ref": "617" + }, + "value": "eastus2euap" + } + }, + { + "$id": "633", + "parameter": { + "$ref": "624" + }, + "value": { + "$id": "634", + "kind": "model", + "type": { + "$ref": "248" + }, + "value": { + "$id": "635", + "schedule": { + "$id": "636", + "kind": "model", + "type": { + "$ref": "66" + }, + "value": { + "$id": "637", + "deadline": { + "$id": "638", + "kind": "string", + "type": { + "$ref": "68" + }, + "value": "2024-11-01T17:52:54.215Z" + }, + "timezone": { + "$id": "639", + "kind": "string", + "type": { + "$ref": "78" + }, + "value": "UTC" + }, + "deadlineType": { + "$id": "640", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "InitiateAt" + } + } + }, + "executionParameters": { + "$id": "641", + "kind": "model", + "type": { + "$ref": "91" + }, + "value": { + "$id": "642", + "retryPolicy": { + "$id": "643", + "kind": "model", + "type": { + "$ref": "96" + }, + "value": { + "$id": "644", + "retryCount": { + "$id": "645", + "kind": "number", + "type": { + "$ref": "98" + }, + "value": 2 + }, + "retryWindowInMinutes": { + "$id": "646", + "kind": "number", + "type": { + "$ref": "102" + }, + "value": 27 + } + } + } + } + }, + "resources": { + "$id": "647", + "kind": "model", + "type": { + "$ref": "110" + }, + "value": { + "$id": "648", + "ids": { + "$id": "649", + "kind": "array", + "type": { + "$ref": "112" + }, + "value": [ + { + "$id": "650", + "kind": "string", + "type": { + "$ref": "113" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + } + ] + } + } + }, + "correlationid": { + "$id": "651", + "kind": "string", + "type": { + "$ref": "259" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + } + } + } + } + ], + "responses": [ + { + "$id": "652", + "response": { + "$ref": "625" + }, + "statusCode": 200, + "bodyValue": { + "$id": "653", + "kind": "model", + "type": { + "$ref": "262" + }, + "value": { + "$id": "654", + "type": { + "$id": "655", + "kind": "string", + "type": { + "$ref": "268" + }, + "value": "virtualMachine" + }, + "location": { + "$id": "656", + "kind": "string", + "type": { + "$ref": "272" + }, + "value": "eastus2euap" + }, + "results": { + "$id": "657", + "kind": "array", + "type": { + "$ref": "277" + }, + "value": [ + { + "$id": "658", + "kind": "model", + "type": { + "$ref": "139" + }, + "value": { + "$id": "659", + "resourceId": { + "$id": "660", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + }, + "errorCode": { + "$id": "661", + "kind": "string", + "type": { + "$ref": "146" + }, + "value": "null" + }, + "errorDetails": { + "$id": "662", + "kind": "string", + "type": { + "$ref": "150" + }, + "value": "null" + }, + "operation": { + "$id": "663", + "kind": "model", + "type": { + "$ref": "154" + }, + "value": { + "$id": "664", + "operationId": { + "$id": "665", + "kind": "string", + "type": { + "$ref": "156" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + }, + "resourceId": { + "$id": "666", + "kind": "string", + "type": { + "$ref": "160" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + }, + "opType": { + "$id": "667", + "kind": "string", + "type": { + "$ref": "18" + }, + "value": "Hibernate" + }, + "subscriptionId": { + "$id": "668", + "kind": "string", + "type": { + "$ref": "168" + }, + "value": "D8E30CC0-2763-4FCC-84A8-3C5659281032" + }, + "deadline": { + "$id": "669", + "kind": "string", + "type": { + "$ref": "172" + }, + "value": "2024-11-01T17:52:53.667Z" + }, + "deadlineType": { + "$id": "670", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "InitiateAt" + }, + "state": { + "$id": "671", + "kind": "string", + "type": { + "$ref": "28" + }, + "value": "Succeeded" + }, + "timezone": { + "$id": "672", + "kind": "string", + "type": { + "$ref": "183" + }, + "value": "UTC" + }, + "resourceOperationError": { + "$id": "673", + "kind": "model", + "type": { + "$ref": "191" + }, + "value": { + "$id": "674", + "errorCode": { + "$id": "675", + "kind": "string", + "type": { + "$ref": "193" + }, + "value": "null" + }, + "errorDetails": { + "$id": "676", + "kind": "string", + "type": { + "$ref": "197" + }, + "value": "null" + } + } + }, + "completedAt": { + "$id": "677", + "kind": "string", + "type": { + "$ref": "203" + }, + "value": "2024-11-01T17:52:53.668Z" + }, + "retryPolicy": { + "$id": "678", + "kind": "model", + "type": { + "$ref": "96" + }, + "value": { + "$id": "679", + "retryCount": { + "$id": "680", + "kind": "number", + "type": { + "$ref": "98" + }, + "value": 2 + }, + "retryWindowInMinutes": { + "$id": "681", + "kind": "number", + "type": { + "$ref": "102" + }, + "value": 27 + } + } + }, + "timeZone": { + "$id": "682", + "kind": "string", + "type": { + "$ref": "187" + }, + "value": "UTC" + } + } + } + } + } + ] + }, + "description": { + "$id": "683", + "kind": "string", + "type": { + "$ref": "264" + }, + "value": "Hibernate Resource Request" + } + } + } + } + ] + } + ] + }, + { + "$id": "684", + "name": "SubmitVirtualMachineStart", + "resourceName": "ScheduledActions", + "doc": "VirtualMachinesSubmitStart: Schedule start operation for a batch of virtual machines at datetime in future.", + "accessibility": "public", + "parameters": [ + { + "$id": "685", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "686", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "687", + "type": { + "$id": "688", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-10-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "689", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "690", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "691", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "692", + "name": "locationparameter", + "nameInRequest": "locationparameter", + "doc": "The location name.", + "type": { + "$id": "693", + "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": "694", + "name": "contentType", + "nameInRequest": "Content-Type", + "doc": "Body parameter's content type. Known values are application/json", + "type": { + "$id": "695", + "kind": "constant", + "valueType": { + "$id": "696", + "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": "697", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "698", + "kind": "constant", + "valueType": { + "$id": "699", + "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": "700", + "name": "requestBody", + "nameInRequest": "requestBody", + "doc": "The request body", + "type": { + "$ref": "280" + }, + "location": "Body", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "701", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "294" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "POST", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesSubmitStart", + "requestMediaTypes": [ + "application/json" + ], + "bufferResponse": true, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ScheduledActions.virtualMachinesSubmitStart", + "decorators": [], + "examples": [ + { + "$id": "702", + "kind": "http", + "name": "ScheduledActions_VirtualMachinesSubmitStart", + "description": "ScheduledActions_VirtualMachinesSubmitStart", + "filePath": "2024-10-01/ScheduledActions_VirtualMachinesSubmitStart.json", + "parameters": [ + { + "$id": "703", + "parameter": { + "$ref": "685" + }, + "value": { + "$id": "704", + "kind": "string", + "type": { + "$ref": "686" + }, + "value": "2024-10-01" + } + }, + { + "$id": "705", + "parameter": { + "$ref": "689" + }, + "value": { + "$id": "706", + "kind": "string", + "type": { + "$ref": "690" + }, + "value": "D8E30CC0-2763-4FCC-84A8-3C5659281032" + } + }, + { + "$id": "707", + "parameter": { + "$ref": "692" + }, + "value": { + "$id": "708", + "kind": "string", + "type": { + "$ref": "693" + }, + "value": "eastus2euap" + } + }, + { + "$id": "709", + "parameter": { + "$ref": "700" + }, + "value": { + "$id": "710", + "kind": "model", + "type": { + "$ref": "280" + }, + "value": { + "$id": "711", + "schedule": { + "$id": "712", + "kind": "model", + "type": { + "$ref": "66" + }, + "value": { + "$id": "713", + "deadline": { + "$id": "714", + "kind": "string", + "type": { + "$ref": "68" + }, + "value": "2024-11-01T17:52:54.215Z" + }, + "timezone": { + "$id": "715", + "kind": "string", + "type": { + "$ref": "78" + }, + "value": "UTC" + }, + "deadlineType": { + "$id": "716", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "InitiateAt" + } + } + }, + "executionParameters": { + "$id": "717", + "kind": "model", + "type": { + "$ref": "91" + }, + "value": { + "$id": "718", + "retryPolicy": { + "$id": "719", + "kind": "model", + "type": { + "$ref": "96" + }, + "value": { + "$id": "720", + "retryCount": { + "$id": "721", + "kind": "number", + "type": { + "$ref": "98" + }, + "value": 5 + }, + "retryWindowInMinutes": { + "$id": "722", + "kind": "number", + "type": { + "$ref": "102" + }, + "value": 27 + } + } + } + } + }, + "resources": { + "$id": "723", + "kind": "model", + "type": { + "$ref": "110" + }, + "value": { + "$id": "724", + "ids": { + "$id": "725", + "kind": "array", + "type": { + "$ref": "112" + }, + "value": [ + { + "$id": "726", + "kind": "string", + "type": { + "$ref": "113" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + } + ] + } + } + }, + "correlationid": { + "$id": "727", + "kind": "string", + "type": { + "$ref": "291" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + } + } + } + } + ], + "responses": [ + { + "$id": "728", + "response": { + "$ref": "701" + }, + "statusCode": 200, + "bodyValue": { + "$id": "729", + "kind": "model", + "type": { + "$ref": "294" + }, + "value": { + "$id": "730", + "type": { + "$id": "731", + "kind": "string", + "type": { + "$ref": "300" + }, + "value": "virtualMachine" + }, + "location": { + "$id": "732", + "kind": "string", + "type": { + "$ref": "304" + }, + "value": "eastus2euap" + }, + "results": { + "$id": "733", + "kind": "array", + "type": { + "$ref": "309" + }, + "value": [ + { + "$id": "734", + "kind": "model", + "type": { + "$ref": "139" + }, + "value": { + "$id": "735", + "resourceId": { + "$id": "736", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + }, + "errorCode": { + "$id": "737", + "kind": "string", + "type": { + "$ref": "146" + }, + "value": "null" + }, + "errorDetails": { + "$id": "738", + "kind": "string", + "type": { + "$ref": "150" + }, + "value": "null" + }, + "operation": { + "$id": "739", + "kind": "model", + "type": { + "$ref": "154" + }, + "value": { + "$id": "740", + "operationId": { + "$id": "741", + "kind": "string", + "type": { + "$ref": "156" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + }, + "resourceId": { + "$id": "742", + "kind": "string", + "type": { + "$ref": "160" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + }, + "opType": { + "$id": "743", + "kind": "string", + "type": { + "$ref": "18" + }, + "value": "Start" + }, + "subscriptionId": { + "$id": "744", + "kind": "string", + "type": { + "$ref": "168" + }, + "value": "D8E30CC0-2763-4FCC-84A8-3C5659281032" + }, + "deadline": { + "$id": "745", + "kind": "string", + "type": { + "$ref": "172" + }, + "value": "2024-11-01T17:52:53.667Z" + }, + "deadlineType": { + "$id": "746", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "InitiateAt" + }, + "state": { + "$id": "747", + "kind": "string", + "type": { + "$ref": "28" + }, + "value": "Succeeded" + }, + "timezone": { + "$id": "748", + "kind": "string", + "type": { + "$ref": "183" + }, + "value": "UTC" + }, + "resourceOperationError": { + "$id": "749", + "kind": "model", + "type": { + "$ref": "191" + }, + "value": { + "$id": "750", + "errorCode": { + "$id": "751", + "kind": "string", + "type": { + "$ref": "193" + }, + "value": "null" + }, + "errorDetails": { + "$id": "752", + "kind": "string", + "type": { + "$ref": "197" + }, + "value": "null" + } + } + }, + "completedAt": { + "$id": "753", + "kind": "string", + "type": { + "$ref": "203" + }, + "value": "2024-11-01T17:52:53.668Z" + }, + "retryPolicy": { + "$id": "754", + "kind": "model", + "type": { + "$ref": "96" + }, + "value": { + "$id": "755", + "retryCount": { + "$id": "756", + "kind": "number", + "type": { + "$ref": "98" + }, + "value": 5 + }, + "retryWindowInMinutes": { + "$id": "757", + "kind": "number", + "type": { + "$ref": "102" + }, + "value": 27 + } + } + }, + "timeZone": { + "$id": "758", + "kind": "string", + "type": { + "$ref": "187" + }, + "value": "UTC" + } + } + } + } + } + ] + }, + "description": { + "$id": "759", + "kind": "string", + "type": { + "$ref": "296" + }, + "value": "Start Resource Request" + } + } + } + } + ] + } + ] + }, + { + "$id": "760", + "name": "ExecuteVirtualMachineDeallocate", + "resourceName": "ScheduledActions", + "doc": "VirtualMachinesExecuteDeallocate: Execute deallocate operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it.", + "accessibility": "public", + "parameters": [ + { + "$id": "761", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "762", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "763", + "type": { + "$id": "764", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-10-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "765", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "766", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "767", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "768", + "name": "locationparameter", + "nameInRequest": "locationparameter", + "doc": "The location name.", + "type": { + "$id": "769", + "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": "770", + "name": "contentType", + "nameInRequest": "Content-Type", + "doc": "Body parameter's content type. Known values are application/json", + "type": { + "$id": "771", + "kind": "constant", + "valueType": { + "$id": "772", + "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": "773", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "774", + "kind": "constant", + "valueType": { + "$id": "775", + "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": "776", + "name": "requestBody", + "nameInRequest": "requestBody", + "doc": "The request body", + "type": { + "$ref": "312" + }, + "location": "Body", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "777", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "123" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "POST", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesExecuteDeallocate", + "requestMediaTypes": [ + "application/json" + ], + "bufferResponse": true, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ScheduledActions.virtualMachinesExecuteDeallocate", + "decorators": [], + "examples": [ + { + "$id": "778", + "kind": "http", + "name": "ScheduledActions_VirtualMachinesExecuteDeallocate", + "description": "ScheduledActions_VirtualMachinesExecuteDeallocate", + "filePath": "2024-10-01/ScheduledActions_VirtualMachinesExecuteDeallocate.json", + "parameters": [ + { + "$id": "779", + "parameter": { + "$ref": "761" + }, + "value": { + "$id": "780", + "kind": "string", + "type": { + "$ref": "762" + }, + "value": "2024-10-01" + } + }, + { + "$id": "781", + "parameter": { + "$ref": "765" + }, + "value": { + "$id": "782", + "kind": "string", + "type": { + "$ref": "766" + }, + "value": "D8E30CC0-2763-4FCC-84A8-3C5659281032" + } + }, + { + "$id": "783", + "parameter": { + "$ref": "768" + }, + "value": { + "$id": "784", + "kind": "string", + "type": { + "$ref": "769" + }, + "value": "eastus2euap" + } + }, + { + "$id": "785", + "parameter": { + "$ref": "776" + }, + "value": { + "$id": "786", + "kind": "model", + "type": { + "$ref": "312" + }, + "value": { + "$id": "787", + "executionParameters": { + "$id": "788", + "kind": "model", + "type": { + "$ref": "91" + }, + "value": { + "$id": "789", + "retryPolicy": { + "$id": "790", + "kind": "model", + "type": { + "$ref": "96" + }, + "value": { + "$id": "791", + "retryCount": { + "$id": "792", + "kind": "number", + "type": { + "$ref": "98" + }, + "value": 4 + }, + "retryWindowInMinutes": { + "$id": "793", + "kind": "number", + "type": { + "$ref": "102" + }, + "value": 27 + } + } + } + } + }, + "resources": { + "$id": "794", + "kind": "model", + "type": { + "$ref": "110" + }, + "value": { + "$id": "795", + "ids": { + "$id": "796", + "kind": "array", + "type": { + "$ref": "112" + }, + "value": [ + { + "$id": "797", + "kind": "string", + "type": { + "$ref": "113" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + } + ] + } + } + }, + "correlationid": { + "$id": "798", + "kind": "string", + "type": { + "$ref": "320" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + } + } + } + } + ], + "responses": [ + { + "$id": "799", + "response": { + "$ref": "777" + }, + "statusCode": 200, + "bodyValue": { + "$id": "800", + "kind": "model", + "type": { + "$ref": "123" + }, + "value": { + "$id": "801", + "type": { + "$id": "802", + "kind": "string", + "type": { + "$ref": "129" + }, + "value": "VirtualMachine" + }, + "location": { + "$id": "803", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "eastus2euap" + }, + "results": { + "$id": "804", + "kind": "array", + "type": { + "$ref": "138" + }, + "value": [ + { + "$id": "805", + "kind": "model", + "type": { + "$ref": "139" + }, + "value": { + "$id": "806", + "resourceId": { + "$id": "807", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + }, + "errorCode": { + "$id": "808", + "kind": "string", + "type": { + "$ref": "146" + }, + "value": "null" + }, + "errorDetails": { + "$id": "809", + "kind": "string", + "type": { + "$ref": "150" + }, + "value": "null" + }, + "operation": { + "$id": "810", + "kind": "model", + "type": { + "$ref": "154" + }, + "value": { + "$id": "811", + "operationId": { + "$id": "812", + "kind": "string", + "type": { + "$ref": "156" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + }, + "resourceId": { + "$id": "813", + "kind": "string", + "type": { + "$ref": "160" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + }, + "opType": { + "$id": "814", + "kind": "string", + "type": { + "$ref": "18" + }, + "value": "Deallocate" + }, + "subscriptionId": { + "$id": "815", + "kind": "string", + "type": { + "$ref": "168" + }, + "value": "D8E30CC0-2763-4FCC-84A8-3C5659281032" + }, + "deadline": { + "$id": "816", + "kind": "string", + "type": { + "$ref": "172" + }, + "value": "2024-11-01T17:52:53.667Z" + }, + "deadlineType": { + "$id": "817", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "InitiateAt" + }, + "state": { + "$id": "818", + "kind": "string", + "type": { + "$ref": "28" + }, + "value": "Succeeded" + }, + "timezone": { + "$id": "819", + "kind": "string", + "type": { + "$ref": "183" + }, + "value": "UTC" + }, + "resourceOperationError": { + "$id": "820", + "kind": "model", + "type": { + "$ref": "191" + }, + "value": { + "$id": "821", + "errorCode": { + "$id": "822", + "kind": "string", + "type": { + "$ref": "193" + }, + "value": "null" + }, + "errorDetails": { + "$id": "823", + "kind": "string", + "type": { + "$ref": "197" + }, + "value": "null" + } + } + }, + "completedAt": { + "$id": "824", + "kind": "string", + "type": { + "$ref": "203" + }, + "value": "2024-11-01T17:52:53.668Z" + }, + "retryPolicy": { + "$id": "825", + "kind": "model", + "type": { + "$ref": "96" + }, + "value": { + "$id": "826", + "retryCount": { + "$id": "827", + "kind": "number", + "type": { + "$ref": "98" + }, + "value": 4 + }, + "retryWindowInMinutes": { + "$id": "828", + "kind": "number", + "type": { + "$ref": "102" + }, + "value": 27 + } + } + }, + "timeZone": { + "$id": "829", + "kind": "string", + "type": { + "$ref": "187" + }, + "value": "UTC" + } + } + } + } + } + ] + }, + "description": { + "$id": "830", + "kind": "string", + "type": { + "$ref": "125" + }, + "value": "Deallocate Resource Request" + } + } + } + } + ] + } + ] + }, + { + "$id": "831", + "name": "ExecuteVirtualMachineHibernate", + "resourceName": "ScheduledActions", + "doc": "VirtualMachinesExecuteHibernate: Execute hibernate operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it.", + "accessibility": "public", + "parameters": [ + { + "$id": "832", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "833", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "834", + "type": { + "$id": "835", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-10-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "836", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "837", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "838", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "839", + "name": "locationparameter", + "nameInRequest": "locationparameter", + "doc": "The location name.", + "type": { + "$id": "840", + "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": "841", + "name": "contentType", + "nameInRequest": "Content-Type", + "doc": "Body parameter's content type. Known values are application/json", + "type": { + "$id": "842", + "kind": "constant", + "valueType": { + "$id": "843", + "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": "844", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "845", + "kind": "constant", + "valueType": { + "$id": "846", + "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": "847", + "name": "requestBody", + "nameInRequest": "requestBody", + "doc": "The request body", + "type": { + "$ref": "323" + }, + "location": "Body", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "848", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "262" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "POST", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesExecuteHibernate", + "requestMediaTypes": [ + "application/json" + ], + "bufferResponse": true, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ScheduledActions.virtualMachinesExecuteHibernate", + "decorators": [], + "examples": [ + { + "$id": "849", + "kind": "http", + "name": "ScheduledActions_VirtualMachinesExecuteHibernate", + "description": "ScheduledActions_VirtualMachinesExecuteHibernate", + "filePath": "2024-10-01/ScheduledActions_VirtualMachinesExecuteHibernate.json", + "parameters": [ + { + "$id": "850", + "parameter": { + "$ref": "832" + }, + "value": { + "$id": "851", + "kind": "string", + "type": { + "$ref": "833" + }, + "value": "2024-10-01" + } + }, + { + "$id": "852", + "parameter": { + "$ref": "836" + }, + "value": { + "$id": "853", + "kind": "string", + "type": { + "$ref": "837" + }, + "value": "D8E30CC0-2763-4FCC-84A8-3C5659281032" + } + }, + { + "$id": "854", + "parameter": { + "$ref": "839" + }, + "value": { + "$id": "855", + "kind": "string", + "type": { + "$ref": "840" + }, + "value": "eastus2euap" + } + }, + { + "$id": "856", + "parameter": { + "$ref": "847" + }, + "value": { + "$id": "857", + "kind": "model", + "type": { + "$ref": "323" + }, + "value": { + "$id": "858", + "executionParameters": { + "$id": "859", + "kind": "model", + "type": { + "$ref": "91" + }, + "value": { + "$id": "860", + "retryPolicy": { + "$id": "861", + "kind": "model", + "type": { + "$ref": "96" + }, + "value": { + "$id": "862", + "retryCount": { + "$id": "863", + "kind": "number", + "type": { + "$ref": "98" + }, + "value": 5 + }, + "retryWindowInMinutes": { + "$id": "864", + "kind": "number", + "type": { + "$ref": "102" + }, + "value": 27 + } + } + } + } + }, + "resources": { + "$id": "865", + "kind": "model", + "type": { + "$ref": "110" + }, + "value": { + "$id": "866", + "ids": { + "$id": "867", + "kind": "array", + "type": { + "$ref": "112" + }, + "value": [ + { + "$id": "868", + "kind": "string", + "type": { + "$ref": "113" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + } + ] + } + } + }, + "correlationid": { + "$id": "869", + "kind": "string", + "type": { + "$ref": "331" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + } + } + } + } + ], + "responses": [ + { + "$id": "870", + "response": { + "$ref": "848" + }, + "statusCode": 200, + "bodyValue": { + "$id": "871", + "kind": "model", + "type": { + "$ref": "262" + }, + "value": { + "$id": "872", + "type": { + "$id": "873", + "kind": "string", + "type": { + "$ref": "268" + }, + "value": "VirtualMachine" + }, + "location": { + "$id": "874", + "kind": "string", + "type": { + "$ref": "272" + }, + "value": "eastus2euap" + }, + "results": { + "$id": "875", + "kind": "array", + "type": { + "$ref": "277" + }, + "value": [ + { + "$id": "876", + "kind": "model", + "type": { + "$ref": "139" + }, + "value": { + "$id": "877", + "resourceId": { + "$id": "878", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + }, + "errorCode": { + "$id": "879", + "kind": "string", + "type": { + "$ref": "146" + }, + "value": "null" + }, + "errorDetails": { + "$id": "880", + "kind": "string", + "type": { + "$ref": "150" + }, + "value": "null" + }, + "operation": { + "$id": "881", + "kind": "model", + "type": { + "$ref": "154" + }, + "value": { + "$id": "882", + "operationId": { + "$id": "883", + "kind": "string", + "type": { + "$ref": "156" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + }, + "resourceId": { + "$id": "884", + "kind": "string", + "type": { + "$ref": "160" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + }, + "opType": { + "$id": "885", + "kind": "string", + "type": { + "$ref": "18" + }, + "value": "Hibernate" + }, + "subscriptionId": { + "$id": "886", + "kind": "string", + "type": { + "$ref": "168" + }, + "value": "D8E30CC0-2763-4FCC-84A8-3C5659281032" + }, + "deadline": { + "$id": "887", + "kind": "string", + "type": { + "$ref": "172" + }, + "value": "2024-11-01T17:52:53.667Z" + }, + "deadlineType": { + "$id": "888", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "InitiateAt" + }, + "state": { + "$id": "889", + "kind": "string", + "type": { + "$ref": "28" + }, + "value": "Succeeded" + }, + "timezone": { + "$id": "890", + "kind": "string", + "type": { + "$ref": "183" + }, + "value": "UTC" + }, + "resourceOperationError": { + "$id": "891", + "kind": "model", + "type": { + "$ref": "191" + }, + "value": { + "$id": "892", + "errorCode": { + "$id": "893", + "kind": "string", + "type": { + "$ref": "193" + }, + "value": "null" + }, + "errorDetails": { + "$id": "894", + "kind": "string", + "type": { + "$ref": "197" + }, + "value": "null" + } + } + }, + "completedAt": { + "$id": "895", + "kind": "string", + "type": { + "$ref": "203" + }, + "value": "2024-11-01T17:52:53.668Z" + }, + "retryPolicy": { + "$id": "896", + "kind": "model", + "type": { + "$ref": "96" + }, + "value": { + "$id": "897", + "retryCount": { + "$id": "898", + "kind": "number", + "type": { + "$ref": "98" + }, + "value": 5 + }, + "retryWindowInMinutes": { + "$id": "899", + "kind": "number", + "type": { + "$ref": "102" + }, + "value": 27 + } + } + }, + "timeZone": { + "$id": "900", + "kind": "string", + "type": { + "$ref": "187" + }, + "value": "UTC" + } + } + } + } + } + ] + }, + "description": { + "$id": "901", + "kind": "string", + "type": { + "$ref": "264" + }, + "value": "Hibernate Resource Request" + } + } + } + } + ] + } + ] + }, + { + "$id": "902", + "name": "ExecuteVirtualMachineStart", + "resourceName": "ScheduledActions", + "doc": "VirtualMachinesExecuteStart: Execute start operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it.", + "accessibility": "public", + "parameters": [ + { + "$id": "903", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "904", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "905", + "type": { + "$id": "906", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-10-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "907", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "908", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "909", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "910", + "name": "locationparameter", + "nameInRequest": "locationparameter", + "doc": "The location name.", + "type": { + "$id": "911", + "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": "912", + "name": "contentType", + "nameInRequest": "Content-Type", + "doc": "Body parameter's content type. Known values are application/json", + "type": { + "$id": "913", + "kind": "constant", + "valueType": { + "$id": "914", + "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": "915", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "916", + "kind": "constant", + "valueType": { + "$id": "917", + "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": "918", + "name": "requestBody", + "nameInRequest": "requestBody", + "doc": "The request body", + "type": { + "$ref": "334" + }, + "location": "Body", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "919", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "294" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "POST", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesExecuteStart", + "requestMediaTypes": [ + "application/json" + ], + "bufferResponse": true, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ScheduledActions.virtualMachinesExecuteStart", + "decorators": [], + "examples": [ + { + "$id": "920", + "kind": "http", + "name": "ScheduledActions_VirtualMachinesExecuteStart", + "description": "ScheduledActions_VirtualMachinesExecuteStart", + "filePath": "2024-10-01/ScheduledActions_VirtualMachinesExecuteStart.json", + "parameters": [ + { + "$id": "921", + "parameter": { + "$ref": "903" + }, + "value": { + "$id": "922", + "kind": "string", + "type": { + "$ref": "904" + }, + "value": "2024-10-01" + } + }, + { + "$id": "923", + "parameter": { + "$ref": "907" + }, + "value": { + "$id": "924", + "kind": "string", + "type": { + "$ref": "908" + }, + "value": "D8E30CC0-2763-4FCC-84A8-3C5659281032" + } + }, + { + "$id": "925", + "parameter": { + "$ref": "910" + }, + "value": { + "$id": "926", + "kind": "string", + "type": { + "$ref": "911" + }, + "value": "eastus2euap" + } + }, + { + "$id": "927", + "parameter": { + "$ref": "918" + }, + "value": { + "$id": "928", + "kind": "model", + "type": { + "$ref": "334" + }, + "value": { + "$id": "929", + "executionParameters": { + "$id": "930", + "kind": "model", + "type": { + "$ref": "91" + }, + "value": { + "$id": "931", + "retryPolicy": { + "$id": "932", + "kind": "model", + "type": { + "$ref": "96" + }, + "value": { + "$id": "933", + "retryCount": { + "$id": "934", + "kind": "number", + "type": { + "$ref": "98" + }, + "value": 2 + }, + "retryWindowInMinutes": { + "$id": "935", + "kind": "number", + "type": { + "$ref": "102" + }, + "value": 27 + } + } + } + } + }, + "resources": { + "$id": "936", + "kind": "model", + "type": { + "$ref": "110" + }, + "value": { + "$id": "937", + "ids": { + "$id": "938", + "kind": "array", + "type": { + "$ref": "112" + }, + "value": [ + { + "$id": "939", + "kind": "string", + "type": { + "$ref": "113" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + } + ] + } + } + }, + "correlationid": { + "$id": "940", + "kind": "string", + "type": { + "$ref": "342" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + } + } + } + } + ], + "responses": [ + { + "$id": "941", + "response": { + "$ref": "919" + }, + "statusCode": 200, + "bodyValue": { + "$id": "942", + "kind": "model", + "type": { + "$ref": "294" + }, + "value": { + "$id": "943", + "type": { + "$id": "944", + "kind": "string", + "type": { + "$ref": "300" + }, + "value": "virtualMachine" + }, + "location": { + "$id": "945", + "kind": "string", + "type": { + "$ref": "304" + }, + "value": "eastus2euap" + }, + "results": { + "$id": "946", + "kind": "array", + "type": { + "$ref": "309" + }, + "value": [ + { + "$id": "947", + "kind": "model", + "type": { + "$ref": "139" + }, + "value": { + "$id": "948", + "resourceId": { + "$id": "949", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + }, + "errorCode": { + "$id": "950", + "kind": "string", + "type": { + "$ref": "146" + }, + "value": "null" + }, + "errorDetails": { + "$id": "951", + "kind": "string", + "type": { + "$ref": "150" + }, + "value": "null" + }, + "operation": { + "$id": "952", + "kind": "model", + "type": { + "$ref": "154" + }, + "value": { + "$id": "953", + "operationId": { + "$id": "954", + "kind": "string", + "type": { + "$ref": "156" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + }, + "resourceId": { + "$id": "955", + "kind": "string", + "type": { + "$ref": "160" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + }, + "opType": { + "$id": "956", + "kind": "string", + "type": { + "$ref": "18" + }, + "value": "Start" + }, + "subscriptionId": { + "$id": "957", + "kind": "string", + "type": { + "$ref": "168" + }, + "value": "D8E30CC0-2763-4FCC-84A8-3C5659281032" + }, + "deadline": { + "$id": "958", + "kind": "string", + "type": { + "$ref": "172" + }, + "value": "2024-11-01T17:52:53.667Z" + }, + "deadlineType": { + "$id": "959", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "InitiateAt" + }, + "state": { + "$id": "960", + "kind": "string", + "type": { + "$ref": "28" + }, + "value": "Succeeded" + }, + "timezone": { + "$id": "961", + "kind": "string", + "type": { + "$ref": "183" + }, + "value": "UTC" + }, + "resourceOperationError": { + "$id": "962", + "kind": "model", + "type": { + "$ref": "191" + }, + "value": { + "$id": "963", + "errorCode": { + "$id": "964", + "kind": "string", + "type": { + "$ref": "193" + }, + "value": "null" + }, + "errorDetails": { + "$id": "965", + "kind": "string", + "type": { + "$ref": "197" + }, + "value": "null" + } + } + }, + "completedAt": { + "$id": "966", + "kind": "string", + "type": { + "$ref": "203" + }, + "value": "2024-11-01T17:52:53.668Z" + }, + "retryPolicy": { + "$id": "967", + "kind": "model", + "type": { + "$ref": "96" + }, + "value": { + "$id": "968", + "retryCount": { + "$id": "969", + "kind": "number", + "type": { + "$ref": "98" + }, + "value": 2 + }, + "retryWindowInMinutes": { + "$id": "970", + "kind": "number", + "type": { + "$ref": "102" + }, + "value": 27 + } + } + }, + "timeZone": { + "$id": "971", + "kind": "string", + "type": { + "$ref": "187" + }, + "value": "UTC" + } + } + } + } + } + ] + }, + "description": { + "$id": "972", + "kind": "string", + "type": { + "$ref": "296" + }, + "value": "Start Resource Request" + } + } + } + } + ] + } + ] + }, + { + "$id": "973", + "name": "GetVirtualMachineOperationStatus", + "resourceName": "ScheduledActions", + "doc": "VirtualMachinesGetOperationStatus: Polling endpoint to read status of operations performed on virtual machines", + "accessibility": "public", + "parameters": [ + { + "$id": "974", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "975", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "976", + "type": { + "$id": "977", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-10-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "978", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "979", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "980", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "981", + "name": "locationparameter", + "nameInRequest": "locationparameter", + "doc": "The location name.", + "type": { + "$id": "982", + "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": "983", + "name": "contentType", + "nameInRequest": "Content-Type", + "doc": "Body parameter's content type. Known values are application/json", + "type": { + "$id": "984", + "kind": "constant", + "valueType": { + "$id": "985", + "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": "986", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "987", + "kind": "constant", + "valueType": { + "$id": "988", + "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": "989", + "name": "requestBody", + "nameInRequest": "requestBody", + "doc": "The request body", + "type": { + "$ref": "345" + }, + "location": "Body", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "990", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "355" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "POST", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesGetOperationStatus", + "requestMediaTypes": [ + "application/json" + ], + "bufferResponse": true, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ScheduledActions.virtualMachinesGetOperationStatus", + "decorators": [], + "examples": [ + { + "$id": "991", + "kind": "http", + "name": "ScheduledActions_VirtualMachinesGetOperationStatus", + "description": "ScheduledActions_VirtualMachinesGetOperationStatus", + "filePath": "2024-10-01/ScheduledActions_VirtualMachinesGetOperationStatus.json", + "parameters": [ + { + "$id": "992", + "parameter": { + "$ref": "974" + }, + "value": { + "$id": "993", + "kind": "string", + "type": { + "$ref": "975" + }, + "value": "2024-10-01" + } + }, + { + "$id": "994", + "parameter": { + "$ref": "978" + }, + "value": { + "$id": "995", + "kind": "string", + "type": { + "$ref": "979" + }, + "value": "D8E30CC0-2763-4FCC-84A8-3C5659281032" + } + }, + { + "$id": "996", + "parameter": { + "$ref": "981" + }, + "value": { + "$id": "997", + "kind": "string", + "type": { + "$ref": "982" + }, + "value": "eastus2euap" + } + }, + { + "$id": "998", + "parameter": { + "$ref": "989" + }, + "value": { + "$id": "999", + "kind": "model", + "type": { + "$ref": "345" + }, + "value": { + "$id": "1000", + "operationIds": { + "$id": "1001", + "kind": "array", + "type": { + "$ref": "347" + }, + "value": [ + { + "$id": "1002", + "kind": "string", + "type": { + "$ref": "348" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + } + ] + }, + "correlationid": { + "$id": "1003", + "kind": "string", + "type": { + "$ref": "352" + }, + "value": "35780d2f-1dca-4610-afb4-dd25eec1f34r" + } + } + } + } + ], + "responses": [ + { + "$id": "1004", + "response": { + "$ref": "990" + }, + "statusCode": 200, + "bodyValue": { + "$id": "1005", + "kind": "model", + "type": { + "$ref": "355" + }, + "value": { + "$id": "1006", + "results": { + "$id": "1007", + "kind": "array", + "type": { + "$ref": "357" + }, + "value": [ + { + "$id": "1008", + "kind": "model", + "type": { + "$ref": "139" + }, + "value": { + "$id": "1009", + "resourceId": { + "$id": "1010", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + }, + "errorCode": { + "$id": "1011", + "kind": "string", + "type": { + "$ref": "146" + }, + "value": "null" + }, + "errorDetails": { + "$id": "1012", + "kind": "string", + "type": { + "$ref": "150" + }, + "value": "null" + }, + "operation": { + "$id": "1013", + "kind": "model", + "type": { + "$ref": "154" + }, + "value": { + "$id": "1014", + "operationId": { + "$id": "1015", + "kind": "string", + "type": { + "$ref": "156" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + }, + "resourceId": { + "$id": "1016", + "kind": "string", + "type": { + "$ref": "160" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + }, + "opType": { + "$id": "1017", + "kind": "string", + "type": { + "$ref": "18" + }, + "value": "Deallocate" + }, + "subscriptionId": { + "$id": "1018", + "kind": "string", + "type": { + "$ref": "168" + }, + "value": "D8E30CC0-2763-4FCC-84A8-3C5659281032" + }, + "deadline": { + "$id": "1019", + "kind": "string", + "type": { + "$ref": "172" + }, + "value": "2024-11-01T17:52:53.667Z" + }, + "deadlineType": { + "$id": "1020", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "InitiateAt" + }, + "state": { + "$id": "1021", + "kind": "string", + "type": { + "$ref": "28" + }, + "value": "Succeeded" + }, + "timezone": { + "$id": "1022", + "kind": "string", + "type": { + "$ref": "183" + }, + "value": "UTC" + }, + "resourceOperationError": { + "$id": "1023", + "kind": "model", + "type": { + "$ref": "191" + }, + "value": { + "$id": "1024", + "errorCode": { + "$id": "1025", + "kind": "string", + "type": { + "$ref": "193" + }, + "value": "null" + }, + "errorDetails": { + "$id": "1026", + "kind": "string", + "type": { + "$ref": "197" + }, + "value": "null" + } + } + }, + "completedAt": { + "$id": "1027", + "kind": "string", + "type": { + "$ref": "203" + }, + "value": "2024-11-01T17:52:53.668Z" + }, + "retryPolicy": { + "$id": "1028", + "kind": "model", + "type": { + "$ref": "96" + }, + "value": { + "$id": "1029", + "retryCount": { + "$id": "1030", + "kind": "number", + "type": { + "$ref": "98" + }, + "value": 4 + }, + "retryWindowInMinutes": { + "$id": "1031", + "kind": "number", + "type": { + "$ref": "102" + }, + "value": 27 + } + } + }, + "timeZone": { + "$id": "1032", + "kind": "string", + "type": { + "$ref": "187" + }, + "value": "UTC" + } + } + } + } + } + ] + } + } + } + } + ] + } + ] + }, + { + "$id": "1033", + "name": "CancelVirtualMachineOperations", + "resourceName": "ScheduledActions", + "doc": "VirtualMachinesCancelOperations: Cancel a previously submitted (start/deallocate/hibernate) request", + "accessibility": "public", + "parameters": [ + { + "$id": "1034", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "1035", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "1036", + "type": { + "$id": "1037", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-10-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "1038", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "1039", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "1040", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "1041", + "name": "locationparameter", + "nameInRequest": "locationparameter", + "doc": "The location name.", + "type": { + "$id": "1042", + "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": "1043", + "name": "contentType", + "nameInRequest": "Content-Type", + "doc": "Body parameter's content type. Known values are application/json", + "type": { + "$id": "1044", + "kind": "constant", + "valueType": { + "$id": "1045", + "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": "1046", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "1047", + "kind": "constant", + "valueType": { + "$id": "1048", + "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": "1049", + "name": "requestBody", + "nameInRequest": "requestBody", + "doc": "The request body", + "type": { + "$ref": "360" + }, + "location": "Body", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "1050", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "370" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "POST", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesCancelOperations", + "requestMediaTypes": [ + "application/json" + ], + "bufferResponse": true, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ScheduledActions.virtualMachinesCancelOperations", + "decorators": [], + "examples": [ + { + "$id": "1051", + "kind": "http", + "name": "ScheduledActions_VirtualMachinesCancelOperations", + "description": "ScheduledActions_VirtualMachinesCancelOperations", + "filePath": "2024-10-01/ScheduledActions_VirtualMachinesCancelOperations.json", + "parameters": [ + { + "$id": "1052", + "parameter": { + "$ref": "1034" + }, + "value": { + "$id": "1053", + "kind": "string", + "type": { + "$ref": "1035" + }, + "value": "2024-10-01" + } + }, + { + "$id": "1054", + "parameter": { + "$ref": "1038" + }, + "value": { + "$id": "1055", + "kind": "string", + "type": { + "$ref": "1039" + }, + "value": "D8E30CC0-2763-4FCC-84A8-3C5659281032" + } + }, + { + "$id": "1056", + "parameter": { + "$ref": "1041" + }, + "value": { + "$id": "1057", + "kind": "string", + "type": { + "$ref": "1042" + }, + "value": "eastus2euap" + } + }, + { + "$id": "1058", + "parameter": { + "$ref": "1049" + }, + "value": { + "$id": "1059", + "kind": "model", + "type": { + "$ref": "360" + }, + "value": { + "$id": "1060", + "operationIds": { + "$id": "1061", + "kind": "array", + "type": { + "$ref": "362" + }, + "value": [ + { + "$id": "1062", + "kind": "string", + "type": { + "$ref": "363" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + } + ] + }, + "correlationid": { + "$id": "1063", + "kind": "string", + "type": { + "$ref": "367" + }, + "value": "23480d2f-1dca-4610-afb4-gg25eec1f34r" + } + } + } + } + ], + "responses": [ + { + "$id": "1064", + "response": { + "$ref": "1050" + }, + "statusCode": 200, + "bodyValue": { + "$id": "1065", + "kind": "model", + "type": { + "$ref": "370" + }, + "value": { + "$id": "1066", + "results": { + "$id": "1067", + "kind": "array", + "type": { + "$ref": "372" + }, + "value": [ + { + "$id": "1068", + "kind": "model", + "type": { + "$ref": "139" + }, + "value": { + "$id": "1069", + "resourceId": { + "$id": "1070", + "kind": "string", + "type": { + "$ref": "141" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + }, + "errorCode": { + "$id": "1071", + "kind": "string", + "type": { + "$ref": "146" + }, + "value": "null" + }, + "errorDetails": { + "$id": "1072", + "kind": "string", + "type": { + "$ref": "150" + }, + "value": "null" + }, + "operation": { + "$id": "1073", + "kind": "model", + "type": { + "$ref": "154" + }, + "value": { + "$id": "1074", + "operationId": { + "$id": "1075", + "kind": "string", + "type": { + "$ref": "156" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + }, + "resourceId": { + "$id": "1076", + "kind": "string", + "type": { + "$ref": "160" + }, + "value": "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Compute/virtualMachines/testResource3" + }, + "opType": { + "$id": "1077", + "kind": "string", + "type": { + "$ref": "18" + }, + "value": "Deallocate" + }, + "subscriptionId": { + "$id": "1078", + "kind": "string", + "type": { + "$ref": "168" + }, + "value": "D8E30CC0-2763-4FCC-84A8-3C5659281032" + }, + "deadline": { + "$id": "1079", + "kind": "string", + "type": { + "$ref": "172" + }, + "value": "2024-11-01T17:52:53.667Z" + }, + "deadlineType": { + "$id": "1080", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "InitiateAt" + }, + "state": { + "$id": "1081", + "kind": "string", + "type": { + "$ref": "28" + }, + "value": "Cancelled" + }, + "timezone": { + "$id": "1082", + "kind": "string", + "type": { + "$ref": "183" + }, + "value": "UTC" + }, + "resourceOperationError": { + "$id": "1083", + "kind": "model", + "type": { + "$ref": "191" + }, + "value": { + "$id": "1084", + "errorCode": { + "$id": "1085", + "kind": "string", + "type": { + "$ref": "193" + }, + "value": "null" + }, + "errorDetails": { + "$id": "1086", + "kind": "string", + "type": { + "$ref": "197" + }, + "value": "null" + } + } + }, + "completedAt": { + "$id": "1087", + "kind": "string", + "type": { + "$ref": "203" + }, + "value": "2024-11-01T17:52:53.668Z" + }, + "retryPolicy": { + "$id": "1088", + "kind": "model", + "type": { + "$ref": "96" + }, + "value": { + "$id": "1089", + "retryCount": { + "$id": "1090", + "kind": "number", + "type": { + "$ref": "98" + }, + "value": 4 + }, + "retryWindowInMinutes": { + "$id": "1091", + "kind": "number", + "type": { + "$ref": "102" + }, + "value": 27 + } + } + }, + "timeZone": { + "$id": "1092", + "kind": "string", + "type": { + "$ref": "187" + }, + "value": "UTC" + } + } + } + } + } + ] + } + } + } + } + ] + } + ] + }, + { + "$id": "1093", + "name": "GetVirtualMachineOperationErrors", + "resourceName": "ScheduledActions", + "doc": "VirtualMachinesGetOperationErrors: Get error details on operation errors (like transient errors encountered, additional logs) if they exist.", + "accessibility": "public", + "parameters": [ + { + "$id": "1094", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "1095", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "1096", + "type": { + "$id": "1097", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-10-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "1098", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "1099", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "1100", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "1101", + "name": "locationparameter", + "nameInRequest": "locationparameter", + "doc": "The location name.", + "type": { + "$id": "1102", + "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": "1103", + "name": "contentType", + "nameInRequest": "Content-Type", + "doc": "Body parameter's content type. Known values are application/json", + "type": { + "$id": "1104", + "kind": "constant", + "valueType": { + "$id": "1105", + "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": "1106", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "1107", + "kind": "constant", + "valueType": { + "$id": "1108", + "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": "1109", + "name": "requestBody", + "nameInRequest": "requestBody", + "doc": "The request body", + "type": { + "$ref": "375" + }, + "location": "Body", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "1110", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "381" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "POST", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesGetOperationErrors", + "requestMediaTypes": [ + "application/json" + ], + "bufferResponse": true, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ScheduledActions.virtualMachinesGetOperationErrors", + "decorators": [], + "examples": [ + { + "$id": "1111", + "kind": "http", + "name": "ScheduledActions_VirtualMachinesGetOperationErrors", + "description": "ScheduledActions_VirtualMachinesGetOperationErrors", + "filePath": "2024-10-01/ScheduledActions_VirtualMachinesGetOperationErrors.json", + "parameters": [ + { + "$id": "1112", + "parameter": { + "$ref": "1094" + }, + "value": { + "$id": "1113", + "kind": "string", + "type": { + "$ref": "1095" + }, + "value": "2024-10-01" + } + }, + { + "$id": "1114", + "parameter": { + "$ref": "1098" + }, + "value": { + "$id": "1115", + "kind": "string", + "type": { + "$ref": "1099" + }, + "value": "D8E30CC0-2763-4FCC-84A8-3C5659281032" + } + }, + { + "$id": "1116", + "parameter": { + "$ref": "1101" + }, + "value": { + "$id": "1117", + "kind": "string", + "type": { + "$ref": "1102" + }, + "value": "eastus2euap" + } + }, + { + "$id": "1118", + "parameter": { + "$ref": "1109" + }, + "value": { + "$id": "1119", + "kind": "model", + "type": { + "$ref": "375" + }, + "value": { + "$id": "1120", + "operationIds": { + "$id": "1121", + "kind": "array", + "type": { + "$ref": "377" + }, + "value": [ + { + "$id": "1122", + "kind": "string", + "type": { + "$ref": "378" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + } + ] + } + } + } + } + ], + "responses": [ + { + "$id": "1123", + "response": { + "$ref": "1110" + }, + "statusCode": 200, + "bodyValue": { + "$id": "1124", + "kind": "model", + "type": { + "$ref": "381" + }, + "value": { + "$id": "1125", + "results": { + "$id": "1126", + "kind": "array", + "type": { + "$ref": "383" + }, + "value": [ + { + "$id": "1127", + "kind": "model", + "type": { + "$ref": "384" + }, + "value": { + "$id": "1128", + "operationId": { + "$id": "1129", + "kind": "string", + "type": { + "$ref": "386" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + }, + "creationTime": { + "$id": "1130", + "kind": "string", + "type": { + "$ref": "390" + }, + "value": "2024-11-01T17:52:53.999Z" + }, + "activationTime": { + "$id": "1131", + "kind": "string", + "type": { + "$ref": "395" + }, + "value": "2024-11-01T17:52:53.999Z" + }, + "completedAt": { + "$id": "1132", + "kind": "string", + "type": { + "$ref": "400" + }, + "value": "2024-11-01T17:52:53.999Z" + }, + "operationErrors": { + "$id": "1133", + "kind": "array", + "type": { + "$ref": "405" + }, + "value": [ + { + "$id": "1134", + "kind": "model", + "type": { + "$ref": "406" + }, + "value": { + "$id": "1135", + "errorCode": { + "$id": "1136", + "kind": "string", + "type": { + "$ref": "408" + }, + "value": "null" + }, + "errorDetails": { + "$id": "1137", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "null" + }, + "timestamp": { + "$id": "1138", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "2024-11-01T17:52:53.999Z" + }, + "azureOperationName": { + "$id": "1139", + "kind": "string", + "type": { + "$ref": "426" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + }, + "timeStamp": { + "$id": "1140", + "kind": "string", + "type": { + "$ref": "421" + }, + "value": "2024-11-27T16:55:03.357Z" + }, + "crpOperationId": { + "$id": "1141", + "kind": "string", + "type": { + "$ref": "430" + }, + "value": "23480d2f-1dca-4610-afb4-dd25eec1f34r" + } + } + } + ] + }, + "requestErrorCode": { + "$id": "1142", + "kind": "string", + "type": { + "$ref": "436" + }, + "value": "null" + }, + "requestErrorDetails": { + "$id": "1143", + "kind": "string", + "type": { + "$ref": "440" + }, + "value": "null" + } + } + } + ] + } + } + } + } + ] + } + ] + } + ], + "parent": "ComputeScheduleClient", + "parameters": [ + { + "$id": "1144", + "name": "endpoint", + "nameInRequest": "endpoint", + "doc": "Service host", + "type": { + "$id": "1145", + "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": "1146", + "type": { + "$id": "1147", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "https://management.azure.com" + } + } + ], + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.ComputeSchedule.ScheduledActions" + } + ], + "auth": { + "$id": "1148", + "oAuth2": { + "$id": "1149", + "scopes": [ + "user_impersonation" + ] + } + } +} diff --git a/sdk/deviceregistry/Azure.ResourceManager.DeviceRegistry/Configuration.json b/sdk/deviceregistry/Azure.ResourceManager.DeviceRegistry/Configuration.json new file mode 100644 index 000000000000..9f6a21c28492 --- /dev/null +++ b/sdk/deviceregistry/Azure.ResourceManager.DeviceRegistry/Configuration.json @@ -0,0 +1,12 @@ +{ + "output-folder": ".", + "namespace": "Azure.ResourceManager.DeviceRegistry", + "library-name": "Azure.ResourceManager.DeviceRegistry", + "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/deviceregistry/Azure.ResourceManager.DeviceRegistry/tsp-location.yaml b/sdk/deviceregistry/Azure.ResourceManager.DeviceRegistry/tsp-location.yaml index d39a7fa40086..bea8e9c72b2b 100644 --- a/sdk/deviceregistry/Azure.ResourceManager.DeviceRegistry/tsp-location.yaml +++ b/sdk/deviceregistry/Azure.ResourceManager.DeviceRegistry/tsp-location.yaml @@ -1,3 +1,4 @@ -directory: specification\deviceregistry\DeviceRegistry.Management -commit: df7c9b730f08e00dbe543b57235b36666563ff7d +directory: specification/deviceregistry/DeviceRegistry.Management +commit: 27a6a18feb693251ea80d1894f77fe8c0fdce06a repo: Azure/azure-rest-api-specs +additionalDirectories: diff --git a/sdk/deviceregistry/Azure.ResourceManager.DeviceRegistry/tspCodeModel.json b/sdk/deviceregistry/Azure.ResourceManager.DeviceRegistry/tspCodeModel.json new file mode 100644 index 000000000000..2cc3614e6cee --- /dev/null +++ b/sdk/deviceregistry/Azure.ResourceManager.DeviceRegistry/tspCodeModel.json @@ -0,0 +1,24621 @@ +{ + "$id": "1", + "name": "Microsoft.DeviceRegistry", + "apiVersions": [ + "2024-11-01" + ], + "enums": [ + { + "$id": "2", + "kind": "enum", + "name": "DeviceRegistryProvisioningState", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.ProvisioningState", + "valueType": { + "$id": "3", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "4", + "kind": "enumvalue", + "name": "Succeeded", + "value": "Succeeded", + "valueType": { + "$id": "5", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "2" + }, + "doc": "Resource has been created.", + "decorators": [] + }, + { + "$id": "6", + "kind": "enumvalue", + "name": "Failed", + "value": "Failed", + "valueType": { + "$id": "7", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "2" + }, + "doc": "Resource creation failed.", + "decorators": [] + }, + { + "$id": "8", + "kind": "enumvalue", + "name": "Canceled", + "value": "Canceled", + "valueType": { + "$id": "9", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "2" + }, + "doc": "Resource creation was canceled.", + "decorators": [] + }, + { + "$id": "10", + "kind": "enumvalue", + "name": "Accepted", + "value": "Accepted", + "valueType": { + "$id": "11", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "2" + }, + "doc": "Resource has been accepted by the server.", + "decorators": [] + }, + { + "$id": "12", + "kind": "enumvalue", + "name": "Deleting", + "value": "Deleting", + "valueType": { + "$id": "13", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "2" + }, + "doc": "Resource is deleting.", + "decorators": [] + } + ], + "namespace": "Microsoft.DeviceRegistry", + "doc": "The provisioning status of the resource.", + "isFixed": false, + "isFlags": false, + "usage": "Output,Json,LroInitial,LroFinalEnvelope", + "decorators": [] + }, + { + "$id": "14", + "kind": "enum", + "name": "createdByType", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.createdByType", + "valueType": { + "$id": "15", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "16", + "kind": "enumvalue", + "name": "User", + "value": "User", + "valueType": { + "$id": "17", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "14" + }, + "doc": "The entity was created by a user.", + "decorators": [] + }, + { + "$id": "18", + "kind": "enumvalue", + "name": "Application", + "value": "Application", + "valueType": { + "$id": "19", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "14" + }, + "doc": "The entity was created by an application.", + "decorators": [] + }, + { + "$id": "20", + "kind": "enumvalue", + "name": "ManagedIdentity", + "value": "ManagedIdentity", + "valueType": { + "$id": "21", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "14" + }, + "doc": "The entity was created by a managed identity.", + "decorators": [] + }, + { + "$id": "22", + "kind": "enumvalue", + "name": "Key", + "value": "Key", + "valueType": { + "$id": "23", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "14" + }, + "doc": "The entity was created by a key.", + "decorators": [] + } + ], + "namespace": "Azure.ResourceManager.CommonTypes", + "doc": "The kind of entity that created the resource.", + "isFixed": false, + "isFlags": false, + "usage": "Output,Json,LroInitial,LroFinalEnvelope", + "decorators": [] + }, + { + "$id": "24", + "kind": "enum", + "name": "AuthenticationMethod", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AuthenticationMethod", + "valueType": { + "$id": "25", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "26", + "kind": "enumvalue", + "name": "Anonymous", + "value": "Anonymous", + "valueType": { + "$id": "27", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "24" + }, + "doc": "The user authentication method is anonymous.", + "decorators": [] + }, + { + "$id": "28", + "kind": "enumvalue", + "name": "Certificate", + "value": "Certificate", + "valueType": { + "$id": "29", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "24" + }, + "doc": "The user authentication method is an x509 certificate.", + "decorators": [] + }, + { + "$id": "30", + "kind": "enumvalue", + "name": "UsernamePassword", + "value": "UsernamePassword", + "valueType": { + "$id": "31", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "24" + }, + "doc": "The user authentication method is a username and password.", + "decorators": [] + } + ], + "namespace": "Microsoft.DeviceRegistry", + "doc": "The method to authenticate the user of the client at the server.", + "isFixed": false, + "isFlags": false, + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "decorators": [] + }, + { + "$id": "32", + "kind": "enum", + "name": "ResourceProvisioningState", + "crossLanguageDefinitionId": "Azure.ResourceManager.ResourceProvisioningState", + "valueType": { + "$id": "33", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "34", + "kind": "enumvalue", + "name": "Succeeded", + "value": "Succeeded", + "valueType": { + "$id": "35", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "32" + }, + "doc": "Resource has been created.", + "decorators": [] + }, + { + "$id": "36", + "kind": "enumvalue", + "name": "Failed", + "value": "Failed", + "valueType": { + "$id": "37", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "32" + }, + "doc": "Resource creation failed.", + "decorators": [] + }, + { + "$id": "38", + "kind": "enumvalue", + "name": "Canceled", + "value": "Canceled", + "valueType": { + "$id": "39", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "32" + }, + "doc": "Resource creation was canceled.", + "decorators": [] + } + ], + "namespace": "Azure.ResourceManager", + "doc": "The provisioning state of a resource type.", + "isFixed": false, + "isFlags": false, + "usage": "LroPolling", + "decorators": [] + }, + { + "$id": "40", + "kind": "enum", + "name": "DeviceRegistryTopicRetainType", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.TopicRetainType", + "valueType": { + "$id": "41", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "42", + "kind": "enumvalue", + "name": "Keep", + "value": "Keep", + "valueType": { + "$id": "43", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "40" + }, + "doc": "Retain the messages.", + "decorators": [] + }, + { + "$id": "44", + "kind": "enumvalue", + "name": "Never", + "value": "Never", + "valueType": { + "$id": "45", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "40" + }, + "doc": "Never retain messages.", + "decorators": [] + } + ], + "namespace": "Microsoft.DeviceRegistry", + "doc": "Topic retain types.", + "isFixed": false, + "isFlags": false, + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "decorators": [] + }, + { + "$id": "46", + "kind": "enum", + "name": "DataPointObservabilityMode", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.DataPointObservabilityMode", + "valueType": { + "$id": "47", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "48", + "kind": "enumvalue", + "name": "None", + "value": "None", + "valueType": { + "$id": "49", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "46" + }, + "doc": "No mapping to OpenTelemetry.", + "decorators": [] + }, + { + "$id": "50", + "kind": "enumvalue", + "name": "Counter", + "value": "Counter", + "valueType": { + "$id": "51", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "46" + }, + "doc": "Map as counter to OpenTelemetry.", + "decorators": [] + }, + { + "$id": "52", + "kind": "enumvalue", + "name": "Gauge", + "value": "Gauge", + "valueType": { + "$id": "53", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "46" + }, + "doc": "Map as gauge to OpenTelemetry.", + "decorators": [] + }, + { + "$id": "54", + "kind": "enumvalue", + "name": "Histogram", + "value": "Histogram", + "valueType": { + "$id": "55", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "46" + }, + "doc": "Map as histogram to OpenTelemetry.", + "decorators": [] + }, + { + "$id": "56", + "kind": "enumvalue", + "name": "Log", + "value": "Log", + "valueType": { + "$id": "57", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "46" + }, + "doc": "Map as log to OpenTelemetry.", + "decorators": [] + } + ], + "namespace": "Microsoft.DeviceRegistry", + "doc": "Defines the data point observability mode.", + "isFixed": false, + "isFlags": false, + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "decorators": [] + }, + { + "$id": "58", + "kind": "enum", + "name": "EventObservabilityMode", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.EventObservabilityMode", + "valueType": { + "$id": "59", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "60", + "kind": "enumvalue", + "name": "None", + "value": "None", + "valueType": { + "$id": "61", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "58" + }, + "doc": "No mapping to OpenTelemetry.", + "decorators": [] + }, + { + "$id": "62", + "kind": "enumvalue", + "name": "Log", + "value": "Log", + "valueType": { + "$id": "63", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "58" + }, + "doc": "Map as log to OpenTelemetry.", + "decorators": [] + } + ], + "namespace": "Microsoft.DeviceRegistry", + "doc": "Defines the event observability mode.", + "isFixed": false, + "isFlags": false, + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "decorators": [] + }, + { + "$id": "64", + "kind": "enum", + "name": "Origin", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Origin", + "valueType": { + "$id": "65", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "66", + "kind": "enumvalue", + "name": "user", + "value": "user", + "valueType": { + "$id": "67", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "64" + }, + "doc": "Indicates the operation is initiated by a user.", + "decorators": [] + }, + { + "$id": "68", + "kind": "enumvalue", + "name": "system", + "value": "system", + "valueType": { + "$id": "69", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "64" + }, + "doc": "Indicates the operation is initiated by a system.", + "decorators": [] + }, + { + "$id": "70", + "kind": "enumvalue", + "name": "user,system", + "value": "user,system", + "valueType": { + "$id": "71", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "64" + }, + "doc": "Indicates the operation is initiated by a user or system.", + "decorators": [] + } + ], + "namespace": "Azure.ResourceManager.CommonTypes", + "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": "72", + "kind": "enum", + "name": "ActionType", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ActionType", + "valueType": { + "$id": "73", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "74", + "kind": "enumvalue", + "name": "Internal", + "value": "Internal", + "valueType": { + "$id": "75", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "72" + }, + "doc": "Actions are for internal-only APIs.", + "decorators": [] + } + ], + "namespace": "Azure.ResourceManager.CommonTypes", + "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": "76", + "kind": "enum", + "name": "Versions", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Versions", + "valueType": { + "$id": "77", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "values": [ + { + "$id": "78", + "kind": "enumvalue", + "name": "v2024_11_01", + "value": "2024-11-01", + "valueType": { + "$id": "79", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "enumType": { + "$ref": "76" + }, + "doc": "Microsoft.DeviceRegistry Resource Provider management API version 2024-11-01.", + "decorators": [] + } + ], + "namespace": "Microsoft.DeviceRegistry", + "doc": "Microsoft.DeviceRegistry Resource Provider supported API versions.", + "isFixed": true, + "isFlags": false, + "usage": "ApiVersionEnum", + "decorators": [] + } + ], + "models": [ + { + "$id": "80", + "kind": "model", + "name": "DeviceRegistryBillingContainer", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.BillingContainer", + "usage": "Output,Json", + "doc": "billingContainer Model as Azure resource whose sole purpose is to keep track of billables resources under a subscription.", + "decorators": [], + "baseModel": { + "$id": "81", + "kind": "model", + "name": "ProxyResource", + "namespace": "Azure.ResourceManager.CommonTypes", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ProxyResource", + "usage": "Output,Json", + "doc": "The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location", + "decorators": [], + "baseModel": { + "$id": "82", + "kind": "model", + "name": "Resource", + "namespace": "Azure.ResourceManager.CommonTypes", + "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": "83", + "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": "84", + "kind": "string", + "name": "armResourceIdentifier", + "crossLanguageDefinitionId": "Azure.Core.armResourceIdentifier", + "baseType": { + "$id": "85", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Resource.id", + "serializationOptions": { + "$id": "86", + "json": { + "$id": "87", + "name": "id" + } + } + }, + { + "$id": "88", + "kind": "property", + "name": "name", + "serializedName": "name", + "doc": "The name of the resource", + "type": { + "$id": "89", + "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": "90", + "json": { + "$id": "91", + "name": "name" + } + } + }, + { + "$id": "92", + "kind": "property", + "name": "type", + "serializedName": "type", + "doc": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"", + "type": { + "$id": "93", + "kind": "string", + "name": "armResourceType", + "crossLanguageDefinitionId": "Azure.Core.armResourceType", + "baseType": { + "$id": "94", + "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": "95", + "json": { + "$id": "96", + "name": "type" + } + } + }, + { + "$id": "97", + "kind": "property", + "name": "systemData", + "serializedName": "systemData", + "doc": "Azure Resource Manager metadata containing createdBy and modifiedBy information.", + "type": { + "$id": "98", + "kind": "model", + "name": "SystemData", + "namespace": "Azure.ResourceManager.CommonTypes", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.SystemData", + "usage": "Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Metadata pertaining to creation and last modification of the resource.", + "decorators": [], + "properties": [ + { + "$id": "99", + "kind": "property", + "name": "createdBy", + "serializedName": "createdBy", + "doc": "The identity that created the resource.", + "type": { + "$id": "100", + "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": "101", + "json": { + "$id": "102", + "name": "createdBy" + } + } + }, + { + "$id": "103", + "kind": "property", + "name": "createdByType", + "serializedName": "createdByType", + "doc": "The type of identity that created the resource.", + "type": { + "$ref": "14" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.SystemData.createdByType", + "serializationOptions": { + "$id": "104", + "json": { + "$id": "105", + "name": "createdByType" + } + } + }, + { + "$id": "106", + "kind": "property", + "name": "createdAt", + "serializedName": "createdAt", + "doc": "The timestamp of resource creation (UTC).", + "type": { + "$id": "107", + "kind": "utcDateTime", + "name": "utcDateTime", + "encode": "rfc3339", + "wireType": { + "$id": "108", + "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": "109", + "json": { + "$id": "110", + "name": "createdAt" + } + } + }, + { + "$id": "111", + "kind": "property", + "name": "lastModifiedBy", + "serializedName": "lastModifiedBy", + "doc": "The identity that last modified the resource.", + "type": { + "$id": "112", + "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": "113", + "json": { + "$id": "114", + "name": "lastModifiedBy" + } + } + }, + { + "$id": "115", + "kind": "property", + "name": "lastModifiedByType", + "serializedName": "lastModifiedByType", + "doc": "The type of identity that last modified the resource.", + "type": { + "$ref": "14" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.SystemData.lastModifiedByType", + "serializationOptions": { + "$id": "116", + "json": { + "$id": "117", + "name": "lastModifiedByType" + } + } + }, + { + "$id": "118", + "kind": "property", + "name": "lastModifiedAt", + "serializedName": "lastModifiedAt", + "doc": "The timestamp of resource last modification (UTC)", + "type": { + "$id": "119", + "kind": "utcDateTime", + "name": "utcDateTime", + "encode": "rfc3339", + "wireType": { + "$id": "120", + "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": "121", + "json": { + "$id": "122", + "name": "lastModifiedAt" + } + } + } + ] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Resource.systemData", + "serializationOptions": { + "$id": "123", + "json": { + "$id": "124", + "name": "systemData" + } + } + } + ] + }, + "properties": [] + }, + "properties": [ + { + "$id": "125", + "kind": "property", + "name": "properties", + "serializedName": "properties", + "doc": "The resource-specific properties for this resource.", + "type": { + "$id": "126", + "kind": "model", + "name": "BillingContainerProperties", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.BillingContainerProperties", + "usage": "Output,Json", + "doc": "Defines the billingContainer properties.", + "decorators": [], + "properties": [ + { + "$id": "127", + "kind": "property", + "name": "provisioningState", + "serializedName": "provisioningState", + "doc": "Provisioning state of the resource.", + "type": { + "$ref": "2" + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.BillingContainerProperties.provisioningState", + "serializationOptions": { + "$id": "128", + "json": { + "$id": "129", + "name": "provisioningState" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.BillingContainer.properties", + "serializationOptions": { + "$id": "130", + "json": { + "$id": "131", + "name": "properties" + } + } + }, + { + "$id": "132", + "kind": "property", + "name": "etag", + "serializedName": "etag", + "doc": "Resource ETag", + "type": { + "$id": "133", + "kind": "string", + "name": "eTag", + "crossLanguageDefinitionId": "Azure.Core.eTag", + "baseType": { + "$id": "134", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.BillingContainer.etag", + "serializationOptions": { + "$id": "135", + "json": { + "$id": "136", + "name": "etag" + } + } + } + ] + }, + { + "$ref": "126" + }, + { + "$ref": "81" + }, + { + "$ref": "82" + }, + { + "$ref": "98" + }, + { + "$id": "137", + "kind": "model", + "name": "ErrorResponse", + "namespace": "Azure.ResourceManager.CommonTypes", + "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": "138", + "kind": "property", + "name": "error", + "serializedName": "error", + "doc": "The error object.", + "type": { + "$id": "139", + "kind": "model", + "name": "ErrorDetail", + "namespace": "Azure.ResourceManager.CommonTypes", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorDetail", + "usage": "Json,Exception,LroPolling", + "doc": "The error detail.", + "decorators": [], + "properties": [ + { + "$id": "140", + "kind": "property", + "name": "code", + "serializedName": "code", + "doc": "The error code.", + "type": { + "$id": "141", + "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": "142", + "json": { + "$id": "143", + "name": "code" + } + } + }, + { + "$id": "144", + "kind": "property", + "name": "message", + "serializedName": "message", + "doc": "The error message.", + "type": { + "$id": "145", + "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": "146", + "json": { + "$id": "147", + "name": "message" + } + } + }, + { + "$id": "148", + "kind": "property", + "name": "target", + "serializedName": "target", + "doc": "The error target.", + "type": { + "$id": "149", + "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": "150", + "json": { + "$id": "151", + "name": "target" + } + } + }, + { + "$id": "152", + "kind": "property", + "name": "details", + "serializedName": "details", + "doc": "The error details.", + "type": { + "$id": "153", + "kind": "array", + "name": "ArrayErrorDetail", + "valueType": { + "$ref": "139" + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorDetail.details", + "serializationOptions": { + "$id": "154", + "json": { + "$id": "155", + "name": "details" + } + } + }, + { + "$id": "156", + "kind": "property", + "name": "additionalInfo", + "serializedName": "additionalInfo", + "doc": "The error additional info.", + "type": { + "$id": "157", + "kind": "array", + "name": "ArrayErrorAdditionalInfo", + "valueType": { + "$id": "158", + "kind": "model", + "name": "ErrorAdditionalInfo", + "namespace": "Azure.ResourceManager.CommonTypes", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo", + "usage": "Json,Exception,LroPolling", + "doc": "The resource management error additional info.", + "decorators": [], + "properties": [ + { + "$id": "159", + "kind": "property", + "name": "type", + "serializedName": "type", + "doc": "The additional info type.", + "type": { + "$id": "160", + "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": "161", + "json": { + "$id": "162", + "name": "type" + } + } + }, + { + "$id": "163", + "kind": "property", + "name": "info", + "serializedName": "info", + "doc": "The additional info.", + "type": { + "$id": "164", + "kind": "model", + "name": "ErrorAdditionalInfoInfo", + "namespace": "Azure.ResourceManager.CommonTypes", + "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": "165", + "json": { + "$id": "166", + "name": "info" + } + } + } + ] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorDetail.additionalInfo", + "serializationOptions": { + "$id": "167", + "json": { + "$id": "168", + "name": "additionalInfo" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.ErrorResponse.error", + "serializationOptions": { + "$id": "169", + "json": { + "$id": "170", + "name": "error" + } + } + } + ] + }, + { + "$ref": "139" + }, + { + "$ref": "158" + }, + { + "$ref": "164" + }, + { + "$id": "171", + "kind": "model", + "name": "BillingContainerListResult", + "namespace": "Azure.ResourceManager", + "crossLanguageDefinitionId": "Azure.ResourceManager.ResourceListResult", + "usage": "Output,Json", + "doc": "The response of a BillingContainer list operation.", + "decorators": [], + "properties": [ + { + "$id": "172", + "kind": "property", + "name": "value", + "serializedName": "value", + "doc": "The BillingContainer items on this page", + "type": { + "$id": "173", + "kind": "array", + "name": "ArrayBillingContainer", + "valueType": { + "$ref": "80" + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.ResourceListResult.value", + "serializationOptions": { + "$id": "174", + "json": { + "$id": "175", + "name": "value" + } + } + }, + { + "$id": "176", + "kind": "property", + "name": "nextLink", + "serializedName": "nextLink", + "doc": "The link to the next page of items", + "type": { + "$id": "177", + "kind": "url", + "name": "ResourceLocation", + "crossLanguageDefinitionId": "TypeSpec.Rest.ResourceLocation", + "baseType": { + "$id": "178", + "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": "179", + "json": { + "$id": "180", + "name": "nextLink" + } + } + } + ] + }, + { + "$id": "181", + "kind": "model", + "name": "DeviceRegistryAssetEndpointProfile", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfile", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Asset Endpoint Profile definition.", + "decorators": [], + "baseModel": { + "$id": "182", + "kind": "model", + "name": "TrackedResource", + "namespace": "Azure.ResourceManager.CommonTypes", + "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": { + "$ref": "82" + }, + "properties": [ + { + "$id": "183", + "kind": "property", + "name": "tags", + "serializedName": "tags", + "doc": "Resource tags.", + "type": { + "$id": "184", + "kind": "dict", + "keyType": { + "$id": "185", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "valueType": { + "$id": "186", + "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": "187", + "json": { + "$id": "188", + "name": "tags" + } + } + }, + { + "$id": "189", + "kind": "property", + "name": "location", + "serializedName": "location", + "doc": "The geo-location where the resource lives", + "type": { + "$id": "190", + "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": "191", + "json": { + "$id": "192", + "name": "location" + } + } + } + ] + }, + "properties": [ + { + "$id": "193", + "kind": "property", + "name": "properties", + "serializedName": "properties", + "doc": "The resource-specific properties for this resource.", + "type": { + "$id": "194", + "kind": "model", + "name": "DeviceRegistryAssetEndpointProfileProperties", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfileProperties", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Defines the Asset Endpoint Profile properties.", + "decorators": [], + "properties": [ + { + "$id": "195", + "kind": "property", + "name": "uuid", + "serializedName": "uuid", + "doc": "Globally unique, immutable, non-reusable id.", + "type": { + "$id": "196", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfileProperties.uuid", + "serializationOptions": { + "$id": "197", + "json": { + "$id": "198", + "name": "uuid" + } + } + }, + { + "$id": "199", + "kind": "property", + "name": "targetAddress", + "serializedName": "targetAddress", + "doc": "The local valid URI specifying the network address/DNS name of a southbound device. The scheme part of the targetAddress URI specifies the type of the device. The additionalConfiguration field holds further connector type specific configuration.", + "type": { + "$id": "200", + "kind": "url", + "name": "url", + "crossLanguageDefinitionId": "TypeSpec.url", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfileProperties.targetAddress", + "serializationOptions": { + "$id": "201", + "json": { + "$id": "202", + "name": "targetAddress" + } + } + }, + { + "$id": "203", + "kind": "property", + "name": "endpointProfileType", + "serializedName": "endpointProfileType", + "doc": "Defines the configuration for the connector type that is being used with the endpoint profile.", + "type": { + "$id": "204", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfileProperties.endpointProfileType", + "serializationOptions": { + "$id": "205", + "json": { + "$id": "206", + "name": "endpointProfileType" + } + } + }, + { + "$id": "207", + "kind": "property", + "name": "authentication", + "serializedName": "authentication", + "doc": "Defines the client authentication mechanism to the server.", + "type": { + "$id": "208", + "kind": "model", + "name": "DeviceRegistryAuthentication", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Authentication", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Definition of the client authentication mechanism to the server.", + "decorators": [], + "properties": [ + { + "$id": "209", + "kind": "property", + "name": "method", + "serializedName": "method", + "doc": "Defines the method to authenticate the user of the client at the server.", + "type": { + "$ref": "24" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Authentication.method", + "serializationOptions": { + "$id": "210", + "json": { + "$id": "211", + "name": "method" + } + } + }, + { + "$id": "212", + "kind": "property", + "name": "usernamePasswordCredentials", + "serializedName": "usernamePasswordCredentials", + "doc": "Defines the username and password references when UsernamePassword user authentication mode is selected.", + "type": { + "$id": "213", + "kind": "model", + "name": "DeviceRegistryUsernamePasswordCredentials", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.UsernamePasswordCredentials", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "The credentials for authentication mode UsernamePassword.", + "decorators": [], + "properties": [ + { + "$id": "214", + "kind": "property", + "name": "usernameSecretName", + "serializedName": "usernameSecretName", + "doc": "The name of the secret containing the username.", + "type": { + "$id": "215", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.UsernamePasswordCredentials.usernameSecretName", + "serializationOptions": { + "$id": "216", + "json": { + "$id": "217", + "name": "usernameSecretName" + } + } + }, + { + "$id": "218", + "kind": "property", + "name": "passwordSecretName", + "serializedName": "passwordSecretName", + "doc": "The name of the secret containing the password.", + "type": { + "$id": "219", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.UsernamePasswordCredentials.passwordSecretName", + "serializationOptions": { + "$id": "220", + "json": { + "$id": "221", + "name": "passwordSecretName" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Authentication.usernamePasswordCredentials", + "serializationOptions": { + "$id": "222", + "json": { + "$id": "223", + "name": "usernamePasswordCredentials" + } + } + }, + { + "$id": "224", + "kind": "property", + "name": "x509Credentials", + "serializedName": "x509Credentials", + "doc": "Defines the certificate reference when Certificate user authentication mode is selected.", + "type": { + "$id": "225", + "kind": "model", + "name": "DeviceRegistryX509Credentials", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.X509Credentials", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "The x509 certificate for authentication mode Certificate.", + "decorators": [], + "properties": [ + { + "$id": "226", + "kind": "property", + "name": "certificateSecretName", + "serializedName": "certificateSecretName", + "doc": "The name of the secret containing the certificate and private key (e.g. stored as .der/.pem or .der/.pfx).", + "type": { + "$id": "227", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.X509Credentials.certificateSecretName", + "serializationOptions": { + "$id": "228", + "json": { + "$id": "229", + "name": "certificateSecretName" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Authentication.x509Credentials", + "serializationOptions": { + "$id": "230", + "json": { + "$id": "231", + "name": "x509Credentials" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfileProperties.authentication", + "serializationOptions": { + "$id": "232", + "json": { + "$id": "233", + "name": "authentication" + } + } + }, + { + "$id": "234", + "kind": "property", + "name": "additionalConfiguration", + "serializedName": "additionalConfiguration", + "doc": "Stringified JSON that contains connectivity type specific further configuration (e.g. OPC UA, Modbus, ONVIF).", + "type": { + "$id": "235", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfileProperties.additionalConfiguration", + "serializationOptions": { + "$id": "236", + "json": { + "$id": "237", + "name": "additionalConfiguration" + } + } + }, + { + "$id": "238", + "kind": "property", + "name": "discoveredAssetEndpointProfileRef", + "serializedName": "discoveredAssetEndpointProfileRef", + "doc": "Reference to a discovered asset endpoint profile. Populated only if the asset endpoint profile has been created from discovery flow. Discovered asset endpoint profile name must be provided.", + "type": { + "$id": "239", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfileProperties.discoveredAssetEndpointProfileRef", + "serializationOptions": { + "$id": "240", + "json": { + "$id": "241", + "name": "discoveredAssetEndpointProfileRef" + } + } + }, + { + "$id": "242", + "kind": "property", + "name": "status", + "serializedName": "status", + "doc": "Read only object to reflect changes that have occurred on the Edge. Similar to Kubernetes status property for custom resources.", + "type": { + "$id": "243", + "kind": "model", + "name": "AssetEndpointProfileStatus", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfileStatus", + "usage": "Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Defines the asset endpoint profile status properties.", + "decorators": [], + "properties": [ + { + "$id": "244", + "kind": "property", + "name": "errors", + "serializedName": "errors", + "doc": "Array object to transfer and persist errors that originate from the Edge.", + "type": { + "$id": "245", + "kind": "array", + "name": "ArrayAssetEndpointProfileStatusError", + "valueType": { + "$id": "246", + "kind": "model", + "name": "AssetEndpointProfileStatusError", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfileStatusError", + "usage": "Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Defines the asset endpoint profile status error properties.", + "decorators": [], + "properties": [ + { + "$id": "247", + "kind": "property", + "name": "code", + "serializedName": "code", + "doc": "Error code for classification of errors (ex: 400, 404, 500, etc.).", + "type": { + "$id": "248", + "kind": "int32", + "name": "int32", + "crossLanguageDefinitionId": "TypeSpec.int32", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfileStatusError.code", + "serializationOptions": { + "$id": "249", + "json": { + "$id": "250", + "name": "code" + } + } + }, + { + "$id": "251", + "kind": "property", + "name": "message", + "serializedName": "message", + "doc": "Human readable helpful error message to provide additional context for error (ex: “targetAddress 'foo' is not a valid url”).", + "type": { + "$id": "252", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfileStatusError.message", + "serializationOptions": { + "$id": "253", + "json": { + "$id": "254", + "name": "message" + } + } + } + ] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfileStatus.errors", + "serializationOptions": { + "$id": "255", + "json": { + "$id": "256", + "name": "errors" + } + } + } + ] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfileProperties.status", + "serializationOptions": { + "$id": "257", + "json": { + "$id": "258", + "name": "status" + } + } + }, + { + "$id": "259", + "kind": "property", + "name": "provisioningState", + "serializedName": "provisioningState", + "doc": "Provisioning state of the resource.", + "type": { + "$ref": "2" + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfileProperties.provisioningState", + "serializationOptions": { + "$id": "260", + "json": { + "$id": "261", + "name": "provisioningState" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfile.properties", + "serializationOptions": { + "$id": "262", + "json": { + "$id": "263", + "name": "properties" + } + } + }, + { + "$id": "264", + "kind": "property", + "name": "extendedLocation", + "serializedName": "extendedLocation", + "doc": "The extended location.", + "type": { + "$id": "265", + "kind": "model", + "name": "DeviceRegistryExtendedLocation", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.ExtendedLocation", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "The extended location.", + "decorators": [], + "properties": [ + { + "$id": "266", + "kind": "property", + "name": "ExtendedLocationType", + "serializedName": "type", + "doc": "The extended location type.", + "type": { + "$id": "267", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.ExtendedLocation.type", + "serializationOptions": { + "$id": "268", + "json": { + "$id": "269", + "name": "type" + } + } + }, + { + "$id": "270", + "kind": "property", + "name": "name", + "serializedName": "name", + "doc": "The extended location name.", + "type": { + "$id": "271", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.ExtendedLocation.name", + "serializationOptions": { + "$id": "272", + "json": { + "$id": "273", + "name": "name" + } + } + } + ] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfile.extendedLocation", + "serializationOptions": { + "$id": "274", + "json": { + "$id": "275", + "name": "extendedLocation" + } + } + } + ] + }, + { + "$ref": "194" + }, + { + "$ref": "208" + }, + { + "$ref": "213" + }, + { + "$ref": "225" + }, + { + "$ref": "243" + }, + { + "$ref": "246" + }, + { + "$ref": "265" + }, + { + "$ref": "182" + }, + { + "$id": "276", + "kind": "model", + "name": "ArmOperationStatusResourceProvisioningState", + "namespace": "Azure.ResourceManager", + "crossLanguageDefinitionId": "Azure.ResourceManager.ArmOperationStatus", + "usage": "LroPolling", + "doc": "Standard Azure Resource Manager operation status response", + "decorators": [], + "properties": [ + { + "$id": "277", + "kind": "property", + "name": "status", + "serializedName": "status", + "doc": "The operation status", + "type": { + "$ref": "32" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.ArmOperationStatus.status", + "serializationOptions": { + "$id": "278", + "json": { + "$id": "279", + "name": "status" + } + } + }, + { + "$id": "280", + "kind": "property", + "name": "name", + "serializedName": "name", + "doc": "The name of the operationStatus resource", + "type": { + "$id": "281", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.ArmOperationStatus.name", + "serializationOptions": { + "$id": "282", + "json": { + "$id": "283", + "name": "name" + } + } + }, + { + "$id": "284", + "kind": "property", + "name": "startTime", + "serializedName": "startTime", + "doc": "Operation start time", + "type": { + "$id": "285", + "kind": "utcDateTime", + "name": "utcDateTime", + "encode": "rfc3339", + "wireType": { + "$id": "286", + "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": "287", + "json": { + "$id": "288", + "name": "startTime" + } + } + }, + { + "$id": "289", + "kind": "property", + "name": "endTime", + "serializedName": "endTime", + "doc": "Operation complete time", + "type": { + "$id": "290", + "kind": "utcDateTime", + "name": "utcDateTime", + "encode": "rfc3339", + "wireType": { + "$id": "291", + "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": "292", + "json": { + "$id": "293", + "name": "endTime" + } + } + }, + { + "$id": "294", + "kind": "property", + "name": "percentComplete", + "serializedName": "percentComplete", + "doc": "The progress made toward completing the operation", + "type": { + "$id": "295", + "kind": "float64", + "name": "float64", + "crossLanguageDefinitionId": "TypeSpec.float64", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.ArmOperationStatus.percentComplete", + "serializationOptions": { + "$id": "296", + "json": { + "$id": "297", + "name": "percentComplete" + } + } + }, + { + "$id": "298", + "kind": "property", + "name": "error", + "serializedName": "error", + "doc": "Errors that occurred if the operation ended with Canceled or Failed status", + "type": { + "$ref": "139" + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.ArmOperationStatus.error", + "serializationOptions": { + "$id": "299", + "json": { + "$id": "300", + "name": "error" + } + } + } + ] + }, + { + "$id": "301", + "kind": "model", + "name": "AssetEndpointProfileUpdate", + "namespace": "Azure.ResourceManager.Foundations", + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModel", + "usage": "Input,Json", + "doc": "The type used for update operations of the AssetEndpointProfile.", + "decorators": [], + "properties": [ + { + "$id": "302", + "kind": "property", + "name": "tags", + "serializedName": "tags", + "doc": "Resource tags.", + "type": { + "$id": "303", + "kind": "dict", + "keyType": { + "$id": "304", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "valueType": { + "$id": "305", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModel.tags", + "serializationOptions": { + "$id": "306", + "json": { + "$id": "307", + "name": "tags" + } + } + }, + { + "$id": "308", + "kind": "property", + "name": "properties", + "serializedName": "properties", + "doc": "The resource-specific properties for this resource.", + "type": { + "$id": "309", + "kind": "model", + "name": "AssetEndpointProfileUpdateProperties", + "namespace": "Azure.ResourceManager.Foundations", + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties", + "usage": "Input,Json", + "doc": "The updatable properties of the AssetEndpointProfile.", + "decorators": [], + "properties": [ + { + "$id": "310", + "kind": "property", + "name": "targetAddress", + "serializedName": "targetAddress", + "doc": "The local valid URI specifying the network address/DNS name of a southbound device. The scheme part of the targetAddress URI specifies the type of the device. The additionalConfiguration field holds further connector type specific configuration.", + "type": { + "$id": "311", + "kind": "url", + "name": "url", + "crossLanguageDefinitionId": "TypeSpec.url", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.targetAddress", + "serializationOptions": { + "$id": "312", + "json": { + "$id": "313", + "name": "targetAddress" + } + } + }, + { + "$id": "314", + "kind": "property", + "name": "endpointProfileType", + "serializedName": "endpointProfileType", + "doc": "Defines the configuration for the connector type that is being used with the endpoint profile.", + "type": { + "$id": "315", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.endpointProfileType", + "serializationOptions": { + "$id": "316", + "json": { + "$id": "317", + "name": "endpointProfileType" + } + } + }, + { + "$id": "318", + "kind": "property", + "name": "authentication", + "serializedName": "authentication", + "doc": "Defines the client authentication mechanism to the server.", + "type": { + "$ref": "208" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.authentication", + "serializationOptions": { + "$id": "319", + "json": { + "$id": "320", + "name": "authentication" + } + } + }, + { + "$id": "321", + "kind": "property", + "name": "additionalConfiguration", + "serializedName": "additionalConfiguration", + "doc": "Stringified JSON that contains connectivity type specific further configuration (e.g. OPC UA, Modbus, ONVIF).", + "type": { + "$id": "322", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.additionalConfiguration", + "serializationOptions": { + "$id": "323", + "json": { + "$id": "324", + "name": "additionalConfiguration" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModel.properties", + "serializationOptions": { + "$id": "325", + "json": { + "$id": "326", + "name": "properties" + } + } + } + ] + }, + { + "$ref": "309" + }, + { + "$id": "327", + "kind": "model", + "name": "AssetEndpointProfileListResult", + "namespace": "Azure.ResourceManager", + "crossLanguageDefinitionId": "Azure.ResourceManager.ResourceListResult", + "usage": "Output,Json", + "doc": "The response of a AssetEndpointProfile list operation.", + "decorators": [], + "properties": [ + { + "$id": "328", + "kind": "property", + "name": "value", + "serializedName": "value", + "doc": "The AssetEndpointProfile items on this page", + "type": { + "$id": "329", + "kind": "array", + "name": "ArrayAssetEndpointProfile", + "valueType": { + "$ref": "181" + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.ResourceListResult.value", + "serializationOptions": { + "$id": "330", + "json": { + "$id": "331", + "name": "value" + } + } + }, + { + "$id": "332", + "kind": "property", + "name": "nextLink", + "serializedName": "nextLink", + "doc": "The link to the next page of items", + "type": { + "$id": "333", + "kind": "url", + "name": "ResourceLocation", + "crossLanguageDefinitionId": "TypeSpec.Rest.ResourceLocation", + "baseType": { + "$id": "334", + "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": "335", + "json": { + "$id": "336", + "name": "nextLink" + } + } + } + ] + }, + { + "$id": "337", + "kind": "model", + "name": "DeviceRegistryAsset", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Asset", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Asset definition.", + "decorators": [], + "baseModel": { + "$ref": "182" + }, + "properties": [ + { + "$id": "338", + "kind": "property", + "name": "properties", + "serializedName": "properties", + "doc": "The resource-specific properties for this resource.", + "type": { + "$id": "339", + "kind": "model", + "name": "AssetProperties", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Defines the asset properties.", + "decorators": [], + "properties": [ + { + "$id": "340", + "kind": "property", + "name": "uuid", + "serializedName": "uuid", + "doc": "Globally unique, immutable, non-reusable id.", + "type": { + "$id": "341", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.uuid", + "serializationOptions": { + "$id": "342", + "json": { + "$id": "343", + "name": "uuid" + } + } + }, + { + "$id": "344", + "kind": "property", + "name": "IsEnabled", + "serializedName": "enabled", + "doc": "Enabled/Disabled status of the asset.", + "type": { + "$id": "345", + "kind": "boolean", + "name": "boolean", + "crossLanguageDefinitionId": "TypeSpec.boolean", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.enabled", + "serializationOptions": { + "$id": "346", + "json": { + "$id": "347", + "name": "enabled" + } + } + }, + { + "$id": "348", + "kind": "property", + "name": "externalAssetId", + "serializedName": "externalAssetId", + "doc": "Asset id provided by the customer.", + "type": { + "$id": "349", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.externalAssetId", + "serializationOptions": { + "$id": "350", + "json": { + "$id": "351", + "name": "externalAssetId" + } + } + }, + { + "$id": "352", + "kind": "property", + "name": "displayName", + "serializedName": "displayName", + "doc": "Human-readable display name.", + "type": { + "$id": "353", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.displayName", + "serializationOptions": { + "$id": "354", + "json": { + "$id": "355", + "name": "displayName" + } + } + }, + { + "$id": "356", + "kind": "property", + "name": "description", + "serializedName": "description", + "doc": "Human-readable description of the asset.", + "type": { + "$id": "357", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.description", + "serializationOptions": { + "$id": "358", + "json": { + "$id": "359", + "name": "description" + } + } + }, + { + "$id": "360", + "kind": "property", + "name": "assetEndpointProfileRef", + "serializedName": "assetEndpointProfileRef", + "doc": "A reference to the asset endpoint profile (connection information) used by brokers to connect to an endpoint that provides data points for this asset. Must provide asset endpoint profile name.", + "type": { + "$id": "361", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.assetEndpointProfileRef", + "serializationOptions": { + "$id": "362", + "json": { + "$id": "363", + "name": "assetEndpointProfileRef" + } + } + }, + { + "$id": "364", + "kind": "property", + "name": "version", + "serializedName": "version", + "doc": "An integer that is incremented each time the resource is modified.", + "type": { + "$id": "365", + "kind": "int64", + "name": "int64", + "crossLanguageDefinitionId": "TypeSpec.int64", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.version", + "serializationOptions": { + "$id": "366", + "json": { + "$id": "367", + "name": "version" + } + } + }, + { + "$id": "368", + "kind": "property", + "name": "manufacturer", + "serializedName": "manufacturer", + "doc": "Asset manufacturer name.", + "type": { + "$id": "369", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.manufacturer", + "serializationOptions": { + "$id": "370", + "json": { + "$id": "371", + "name": "manufacturer" + } + } + }, + { + "$id": "372", + "kind": "property", + "name": "manufacturerUri", + "serializedName": "manufacturerUri", + "doc": "Asset manufacturer URI.", + "type": { + "$id": "373", + "kind": "url", + "name": "url", + "crossLanguageDefinitionId": "TypeSpec.url", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.manufacturerUri", + "serializationOptions": { + "$id": "374", + "json": { + "$id": "375", + "name": "manufacturerUri" + } + } + }, + { + "$id": "376", + "kind": "property", + "name": "model", + "serializedName": "model", + "doc": "Asset model name.", + "type": { + "$id": "377", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.model", + "serializationOptions": { + "$id": "378", + "json": { + "$id": "379", + "name": "model" + } + } + }, + { + "$id": "380", + "kind": "property", + "name": "productCode", + "serializedName": "productCode", + "doc": "Asset product code.", + "type": { + "$id": "381", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.productCode", + "serializationOptions": { + "$id": "382", + "json": { + "$id": "383", + "name": "productCode" + } + } + }, + { + "$id": "384", + "kind": "property", + "name": "hardwareRevision", + "serializedName": "hardwareRevision", + "doc": "Revision number of the hardware.", + "type": { + "$id": "385", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.hardwareRevision", + "serializationOptions": { + "$id": "386", + "json": { + "$id": "387", + "name": "hardwareRevision" + } + } + }, + { + "$id": "388", + "kind": "property", + "name": "softwareRevision", + "serializedName": "softwareRevision", + "doc": "Revision number of the software.", + "type": { + "$id": "389", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.softwareRevision", + "serializationOptions": { + "$id": "390", + "json": { + "$id": "391", + "name": "softwareRevision" + } + } + }, + { + "$id": "392", + "kind": "property", + "name": "documentationUri", + "serializedName": "documentationUri", + "doc": "Reference to the documentation.", + "type": { + "$id": "393", + "kind": "url", + "name": "url", + "crossLanguageDefinitionId": "TypeSpec.url", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.documentationUri", + "serializationOptions": { + "$id": "394", + "json": { + "$id": "395", + "name": "documentationUri" + } + } + }, + { + "$id": "396", + "kind": "property", + "name": "serialNumber", + "serializedName": "serialNumber", + "doc": "Asset serial number.", + "type": { + "$id": "397", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.serialNumber", + "serializationOptions": { + "$id": "398", + "json": { + "$id": "399", + "name": "serialNumber" + } + } + }, + { + "$id": "400", + "kind": "property", + "name": "attributes", + "serializedName": "attributes", + "doc": "A set of key-value pairs that contain custom attributes set by the customer.", + "type": { + "$id": "401", + "kind": "dict", + "keyType": { + "$id": "402", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "valueType": { + "$id": "403", + "kind": "unknown", + "name": "unknown", + "crossLanguageDefinitionId": "", + "decorators": [] + }, + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.attributes", + "serializationOptions": { + "$id": "404", + "json": { + "$id": "405", + "name": "attributes" + } + } + }, + { + "$id": "406", + "kind": "property", + "name": "discoveredAssetRefs", + "serializedName": "discoveredAssetRefs", + "doc": "Reference to a list of discovered assets. Populated only if the asset has been created from discovery flow. Discovered asset names must be provided.", + "type": { + "$id": "407", + "kind": "array", + "name": "Array", + "valueType": { + "$id": "408", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.discoveredAssetRefs", + "serializationOptions": { + "$id": "409", + "json": { + "$id": "410", + "name": "discoveredAssetRefs" + } + } + }, + { + "$id": "411", + "kind": "property", + "name": "defaultDatasetsConfiguration", + "serializedName": "defaultDatasetsConfiguration", + "doc": "Stringified JSON that contains connector-specific default configuration for all datasets. Each dataset can have its own configuration that overrides the default settings here.", + "type": { + "$id": "412", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.defaultDatasetsConfiguration", + "serializationOptions": { + "$id": "413", + "json": { + "$id": "414", + "name": "defaultDatasetsConfiguration" + } + } + }, + { + "$id": "415", + "kind": "property", + "name": "defaultEventsConfiguration", + "serializedName": "defaultEventsConfiguration", + "doc": "Stringified JSON that contains connector-specific default configuration for all events. Each event can have its own configuration that overrides the default settings here.", + "type": { + "$id": "416", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.defaultEventsConfiguration", + "serializationOptions": { + "$id": "417", + "json": { + "$id": "418", + "name": "defaultEventsConfiguration" + } + } + }, + { + "$id": "419", + "kind": "property", + "name": "defaultTopic", + "serializedName": "defaultTopic", + "doc": "Object that describes the default topic information for the asset.", + "type": { + "$id": "420", + "kind": "model", + "name": "DeviceRegistryTopic", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Topic", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Object that describes the topic information.", + "decorators": [], + "properties": [ + { + "$id": "421", + "kind": "property", + "name": "path", + "serializedName": "path", + "doc": "The topic path for messages published to an MQTT broker.", + "type": { + "$id": "422", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Topic.path", + "serializationOptions": { + "$id": "423", + "json": { + "$id": "424", + "name": "path" + } + } + }, + { + "$id": "425", + "kind": "property", + "name": "retain", + "serializedName": "retain", + "doc": "When set to 'Keep', messages published to an MQTT broker will have the retain flag set. Default: 'Never'.", + "type": { + "$ref": "40" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Topic.retain", + "serializationOptions": { + "$id": "426", + "json": { + "$id": "427", + "name": "retain" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.defaultTopic", + "serializationOptions": { + "$id": "428", + "json": { + "$id": "429", + "name": "defaultTopic" + } + } + }, + { + "$id": "430", + "kind": "property", + "name": "datasets", + "serializedName": "datasets", + "doc": "Array of datasets that are part of the asset. Each dataset describes the data points that make up the set.", + "type": { + "$id": "431", + "kind": "array", + "name": "ArrayDataset", + "valueType": { + "$id": "432", + "kind": "model", + "name": "DeviceRegistryDataset", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Dataset", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Defines the dataset properties.", + "decorators": [], + "properties": [ + { + "$id": "433", + "kind": "property", + "name": "name", + "serializedName": "name", + "doc": "Name of the dataset.", + "type": { + "$id": "434", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Dataset.name", + "serializationOptions": { + "$id": "435", + "json": { + "$id": "436", + "name": "name" + } + } + }, + { + "$id": "437", + "kind": "property", + "name": "datasetConfiguration", + "serializedName": "datasetConfiguration", + "doc": "Stringified JSON that contains connector-specific JSON string that describes configuration for the specific dataset.", + "type": { + "$id": "438", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Dataset.datasetConfiguration", + "serializationOptions": { + "$id": "439", + "json": { + "$id": "440", + "name": "datasetConfiguration" + } + } + }, + { + "$id": "441", + "kind": "property", + "name": "topic", + "serializedName": "topic", + "doc": "Object that describes the topic information for the specific dataset.", + "type": { + "$ref": "420" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Dataset.topic", + "serializationOptions": { + "$id": "442", + "json": { + "$id": "443", + "name": "topic" + } + } + }, + { + "$id": "444", + "kind": "property", + "name": "dataPoints", + "serializedName": "dataPoints", + "doc": "Array of data points that are part of the dataset. Each data point can have per-data point configuration.", + "type": { + "$id": "445", + "kind": "array", + "name": "ArrayDataPoint", + "valueType": { + "$id": "446", + "kind": "model", + "name": "DeviceRegistryDataPoint", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.DataPoint", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Defines the data point properties.", + "decorators": [], + "baseModel": { + "$id": "447", + "kind": "model", + "name": "DeviceRegistryDataPointBase", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.DataPointBase", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Defines the data point properties.", + "decorators": [], + "properties": [ + { + "$id": "448", + "kind": "property", + "name": "name", + "serializedName": "name", + "doc": "The name of the data point.", + "type": { + "$id": "449", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.DataPointBase.name", + "serializationOptions": { + "$id": "450", + "json": { + "$id": "451", + "name": "name" + } + } + }, + { + "$id": "452", + "kind": "property", + "name": "dataSource", + "serializedName": "dataSource", + "doc": "The address of the source of the data in the asset (e.g. URL) so that a client can access the data source on the asset.", + "type": { + "$id": "453", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.DataPointBase.dataSource", + "serializationOptions": { + "$id": "454", + "json": { + "$id": "455", + "name": "dataSource" + } + } + }, + { + "$id": "456", + "kind": "property", + "name": "dataPointConfiguration", + "serializedName": "dataPointConfiguration", + "doc": "Stringified JSON that contains connector-specific configuration for the data point. For OPC UA, this could include configuration like, publishingInterval, samplingInterval, and queueSize.", + "type": { + "$id": "457", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.DataPointBase.dataPointConfiguration", + "serializationOptions": { + "$id": "458", + "json": { + "$id": "459", + "name": "dataPointConfiguration" + } + } + } + ] + }, + "properties": [ + { + "$id": "460", + "kind": "property", + "name": "observabilityMode", + "serializedName": "observabilityMode", + "doc": "An indication of how the data point should be mapped to OpenTelemetry.", + "type": { + "$ref": "46" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.DataPoint.observabilityMode", + "serializationOptions": { + "$id": "461", + "json": { + "$id": "462", + "name": "observabilityMode" + } + } + } + ] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Dataset.dataPoints", + "serializationOptions": { + "$id": "463", + "json": { + "$id": "464", + "name": "dataPoints" + } + } + } + ] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.datasets", + "serializationOptions": { + "$id": "465", + "json": { + "$id": "466", + "name": "datasets" + } + } + }, + { + "$id": "467", + "kind": "property", + "name": "events", + "serializedName": "events", + "doc": "Array of events that are part of the asset. Each event can have per-event configuration.", + "type": { + "$id": "468", + "kind": "array", + "name": "ArrayEvent", + "valueType": { + "$id": "469", + "kind": "model", + "name": "DeviceRegistryEvent", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Event", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Defines the event properties.", + "decorators": [], + "baseModel": { + "$id": "470", + "kind": "model", + "name": "DeviceRegistryEventBase", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.EventBase", + "usage": "Input,Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Defines the event properties.", + "decorators": [], + "properties": [ + { + "$id": "471", + "kind": "property", + "name": "name", + "serializedName": "name", + "doc": "The name of the event.", + "type": { + "$id": "472", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.EventBase.name", + "serializationOptions": { + "$id": "473", + "json": { + "$id": "474", + "name": "name" + } + } + }, + { + "$id": "475", + "kind": "property", + "name": "eventNotifier", + "serializedName": "eventNotifier", + "doc": "The address of the notifier of the event in the asset (e.g. URL) so that a client can access the event on the asset.", + "type": { + "$id": "476", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.EventBase.eventNotifier", + "serializationOptions": { + "$id": "477", + "json": { + "$id": "478", + "name": "eventNotifier" + } + } + }, + { + "$id": "479", + "kind": "property", + "name": "eventConfiguration", + "serializedName": "eventConfiguration", + "doc": "Stringified JSON that contains connector-specific configuration for the event. For OPC UA, this could include configuration like, publishingInterval, samplingInterval, and queueSize.", + "type": { + "$id": "480", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.EventBase.eventConfiguration", + "serializationOptions": { + "$id": "481", + "json": { + "$id": "482", + "name": "eventConfiguration" + } + } + }, + { + "$id": "483", + "kind": "property", + "name": "topic", + "serializedName": "topic", + "doc": "Object that describes the topic information for the specific event.", + "type": { + "$ref": "420" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.EventBase.topic", + "serializationOptions": { + "$id": "484", + "json": { + "$id": "485", + "name": "topic" + } + } + } + ] + }, + "properties": [ + { + "$id": "486", + "kind": "property", + "name": "observabilityMode", + "serializedName": "observabilityMode", + "doc": "An indication of how the event should be mapped to OpenTelemetry.", + "type": { + "$ref": "58" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Event.observabilityMode", + "serializationOptions": { + "$id": "487", + "json": { + "$id": "488", + "name": "observabilityMode" + } + } + } + ] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.events", + "serializationOptions": { + "$id": "489", + "json": { + "$id": "490", + "name": "events" + } + } + }, + { + "$id": "491", + "kind": "property", + "name": "status", + "serializedName": "status", + "doc": "Read only object to reflect changes that have occurred on the Edge. Similar to Kubernetes status property for custom resources.", + "type": { + "$id": "492", + "kind": "model", + "name": "DeviceRegistryAssetStatus", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetStatus", + "usage": "Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Defines the asset status properties.", + "decorators": [], + "properties": [ + { + "$id": "493", + "kind": "property", + "name": "errors", + "serializedName": "errors", + "doc": "Array object to transfer and persist errors that originate from the Edge.", + "type": { + "$id": "494", + "kind": "array", + "name": "ArrayAssetStatusError", + "valueType": { + "$id": "495", + "kind": "model", + "name": "DeviceRegistryAssetStatusError", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetStatusError", + "usage": "Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Defines the asset status error properties.", + "decorators": [], + "properties": [ + { + "$id": "496", + "kind": "property", + "name": "code", + "serializedName": "code", + "doc": "Error code for classification of errors (ex: 400, 404, 500, etc.).", + "type": { + "$id": "497", + "kind": "int32", + "name": "int32", + "crossLanguageDefinitionId": "TypeSpec.int32", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetStatusError.code", + "serializationOptions": { + "$id": "498", + "json": { + "$id": "499", + "name": "code" + } + } + }, + { + "$id": "500", + "kind": "property", + "name": "message", + "serializedName": "message", + "doc": "Human readable helpful error message to provide additional context for error (ex: “capability Id 'foo' does not exist”).", + "type": { + "$id": "501", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetStatusError.message", + "serializationOptions": { + "$id": "502", + "json": { + "$id": "503", + "name": "message" + } + } + } + ] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetStatus.errors", + "serializationOptions": { + "$id": "504", + "json": { + "$id": "505", + "name": "errors" + } + } + }, + { + "$id": "506", + "kind": "property", + "name": "version", + "serializedName": "version", + "doc": "A read only incremental counter indicating the number of times the configuration has been modified from the perspective of the current actual (Edge) state of the Asset. Edge would be the only writer of this value and would sync back up to the cloud. In steady state, this should equal version.", + "type": { + "$id": "507", + "kind": "int64", + "name": "int64", + "crossLanguageDefinitionId": "TypeSpec.int64", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetStatus.version", + "serializationOptions": { + "$id": "508", + "json": { + "$id": "509", + "name": "version" + } + } + }, + { + "$id": "510", + "kind": "property", + "name": "datasets", + "serializedName": "datasets", + "doc": "Array of dataset statuses that describe the status of each dataset.", + "type": { + "$id": "511", + "kind": "array", + "name": "ArrayAssetStatusDataset", + "valueType": { + "$id": "512", + "kind": "model", + "name": "DeviceRegistryAssetStatusDataset", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetStatusDataset", + "usage": "Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Defines the asset status dataset properties.", + "decorators": [], + "properties": [ + { + "$id": "513", + "kind": "property", + "name": "name", + "serializedName": "name", + "doc": "The name of the dataset. Must be unique within the status.datasets array. This name is used to correlate between the spec and status dataset information.", + "type": { + "$id": "514", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetStatusDataset.name", + "serializationOptions": { + "$id": "515", + "json": { + "$id": "516", + "name": "name" + } + } + }, + { + "$id": "517", + "kind": "property", + "name": "messageSchemaReference", + "serializedName": "messageSchemaReference", + "doc": "The message schema reference object.", + "type": { + "$id": "518", + "kind": "model", + "name": "MessageSchemaReference", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.MessageSchemaReference", + "usage": "Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Defines the message schema reference properties.", + "decorators": [], + "properties": [ + { + "$id": "519", + "kind": "property", + "name": "schemaRegistryNamespace", + "serializedName": "schemaRegistryNamespace", + "doc": "The message schema registry namespace.", + "type": { + "$id": "520", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.MessageSchemaReference.schemaRegistryNamespace", + "serializationOptions": { + "$id": "521", + "json": { + "$id": "522", + "name": "schemaRegistryNamespace" + } + } + }, + { + "$id": "523", + "kind": "property", + "name": "schemaName", + "serializedName": "schemaName", + "doc": "The message schema name.", + "type": { + "$id": "524", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.MessageSchemaReference.schemaName", + "serializationOptions": { + "$id": "525", + "json": { + "$id": "526", + "name": "schemaName" + } + } + }, + { + "$id": "527", + "kind": "property", + "name": "schemaVersion", + "serializedName": "schemaVersion", + "doc": "The message schema version.", + "type": { + "$id": "528", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.MessageSchemaReference.schemaVersion", + "serializationOptions": { + "$id": "529", + "json": { + "$id": "530", + "name": "schemaVersion" + } + } + } + ] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetStatusDataset.messageSchemaReference", + "serializationOptions": { + "$id": "531", + "json": { + "$id": "532", + "name": "messageSchemaReference" + } + } + } + ] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetStatus.datasets", + "serializationOptions": { + "$id": "533", + "json": { + "$id": "534", + "name": "datasets" + } + } + }, + { + "$id": "535", + "kind": "property", + "name": "events", + "serializedName": "events", + "doc": "Array of event statuses that describe the status of each event.", + "type": { + "$id": "536", + "kind": "array", + "name": "ArrayAssetStatusEvent", + "valueType": { + "$id": "537", + "kind": "model", + "name": "DeviceRegistryAssetStatusEvent", + "namespace": "Microsoft.DeviceRegistry", + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetStatusEvent", + "usage": "Output,Json,LroInitial,LroFinalEnvelope", + "doc": "Defines the asset status event properties.", + "decorators": [], + "properties": [ + { + "$id": "538", + "kind": "property", + "name": "name", + "serializedName": "name", + "doc": "The name of the event. Must be unique within the status.events array. This name is used to correlate between the spec and status event information.", + "type": { + "$id": "539", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": false, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetStatusEvent.name", + "serializationOptions": { + "$id": "540", + "json": { + "$id": "541", + "name": "name" + } + } + }, + { + "$id": "542", + "kind": "property", + "name": "messageSchemaReference", + "serializedName": "messageSchemaReference", + "doc": "The message schema reference object.", + "type": { + "$ref": "518" + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetStatusEvent.messageSchemaReference", + "serializationOptions": { + "$id": "543", + "json": { + "$id": "544", + "name": "messageSchemaReference" + } + } + } + ] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetStatus.events", + "serializationOptions": { + "$id": "545", + "json": { + "$id": "546", + "name": "events" + } + } + } + ] + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.status", + "serializationOptions": { + "$id": "547", + "json": { + "$id": "548", + "name": "status" + } + } + }, + { + "$id": "549", + "kind": "property", + "name": "provisioningState", + "serializedName": "provisioningState", + "doc": "Provisioning state of the resource.", + "type": { + "$ref": "2" + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetProperties.provisioningState", + "serializationOptions": { + "$id": "550", + "json": { + "$id": "551", + "name": "provisioningState" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Asset.properties", + "serializationOptions": { + "$id": "552", + "json": { + "$id": "553", + "name": "properties" + } + } + }, + { + "$id": "554", + "kind": "property", + "name": "extendedLocation", + "serializedName": "extendedLocation", + "doc": "The extended location.", + "type": { + "$ref": "265" + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Asset.extendedLocation", + "serializationOptions": { + "$id": "555", + "json": { + "$id": "556", + "name": "extendedLocation" + } + } + } + ] + }, + { + "$ref": "339" + }, + { + "$ref": "420" + }, + { + "$ref": "432" + }, + { + "$ref": "446" + }, + { + "$ref": "447" + }, + { + "$ref": "469" + }, + { + "$ref": "470" + }, + { + "$ref": "492" + }, + { + "$ref": "495" + }, + { + "$ref": "512" + }, + { + "$ref": "518" + }, + { + "$ref": "537" + }, + { + "$id": "557", + "kind": "model", + "name": "AssetUpdate", + "namespace": "Azure.ResourceManager.Foundations", + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModel", + "usage": "Input,Json", + "doc": "The type used for update operations of the Asset.", + "decorators": [], + "properties": [ + { + "$id": "558", + "kind": "property", + "name": "tags", + "serializedName": "tags", + "doc": "Resource tags.", + "type": { + "$id": "559", + "kind": "dict", + "keyType": { + "$id": "560", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "valueType": { + "$id": "561", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModel.tags", + "serializationOptions": { + "$id": "562", + "json": { + "$id": "563", + "name": "tags" + } + } + }, + { + "$id": "564", + "kind": "property", + "name": "properties", + "serializedName": "properties", + "doc": "The resource-specific properties for this resource.", + "type": { + "$id": "565", + "kind": "model", + "name": "AssetUpdateProperties", + "namespace": "Azure.ResourceManager.Foundations", + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties", + "usage": "Input,Json", + "doc": "The updatable properties of the Asset.", + "decorators": [], + "properties": [ + { + "$id": "566", + "kind": "property", + "name": "IsEnabled", + "serializedName": "enabled", + "doc": "Enabled/Disabled status of the asset.", + "type": { + "$id": "567", + "kind": "boolean", + "name": "boolean", + "crossLanguageDefinitionId": "TypeSpec.boolean", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.enabled", + "serializationOptions": { + "$id": "568", + "json": { + "$id": "569", + "name": "enabled" + } + } + }, + { + "$id": "570", + "kind": "property", + "name": "displayName", + "serializedName": "displayName", + "doc": "Human-readable display name.", + "type": { + "$id": "571", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.displayName", + "serializationOptions": { + "$id": "572", + "json": { + "$id": "573", + "name": "displayName" + } + } + }, + { + "$id": "574", + "kind": "property", + "name": "description", + "serializedName": "description", + "doc": "Human-readable description of the asset.", + "type": { + "$id": "575", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.description", + "serializationOptions": { + "$id": "576", + "json": { + "$id": "577", + "name": "description" + } + } + }, + { + "$id": "578", + "kind": "property", + "name": "manufacturer", + "serializedName": "manufacturer", + "doc": "Asset manufacturer name.", + "type": { + "$id": "579", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.manufacturer", + "serializationOptions": { + "$id": "580", + "json": { + "$id": "581", + "name": "manufacturer" + } + } + }, + { + "$id": "582", + "kind": "property", + "name": "manufacturerUri", + "serializedName": "manufacturerUri", + "doc": "Asset manufacturer URI.", + "type": { + "$id": "583", + "kind": "url", + "name": "url", + "crossLanguageDefinitionId": "TypeSpec.url", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.manufacturerUri", + "serializationOptions": { + "$id": "584", + "json": { + "$id": "585", + "name": "manufacturerUri" + } + } + }, + { + "$id": "586", + "kind": "property", + "name": "model", + "serializedName": "model", + "doc": "Asset model name.", + "type": { + "$id": "587", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.model", + "serializationOptions": { + "$id": "588", + "json": { + "$id": "589", + "name": "model" + } + } + }, + { + "$id": "590", + "kind": "property", + "name": "productCode", + "serializedName": "productCode", + "doc": "Asset product code.", + "type": { + "$id": "591", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.productCode", + "serializationOptions": { + "$id": "592", + "json": { + "$id": "593", + "name": "productCode" + } + } + }, + { + "$id": "594", + "kind": "property", + "name": "hardwareRevision", + "serializedName": "hardwareRevision", + "doc": "Revision number of the hardware.", + "type": { + "$id": "595", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.hardwareRevision", + "serializationOptions": { + "$id": "596", + "json": { + "$id": "597", + "name": "hardwareRevision" + } + } + }, + { + "$id": "598", + "kind": "property", + "name": "softwareRevision", + "serializedName": "softwareRevision", + "doc": "Revision number of the software.", + "type": { + "$id": "599", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.softwareRevision", + "serializationOptions": { + "$id": "600", + "json": { + "$id": "601", + "name": "softwareRevision" + } + } + }, + { + "$id": "602", + "kind": "property", + "name": "documentationUri", + "serializedName": "documentationUri", + "doc": "Reference to the documentation.", + "type": { + "$id": "603", + "kind": "url", + "name": "url", + "crossLanguageDefinitionId": "TypeSpec.url", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.documentationUri", + "serializationOptions": { + "$id": "604", + "json": { + "$id": "605", + "name": "documentationUri" + } + } + }, + { + "$id": "606", + "kind": "property", + "name": "serialNumber", + "serializedName": "serialNumber", + "doc": "Asset serial number.", + "type": { + "$id": "607", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.serialNumber", + "serializationOptions": { + "$id": "608", + "json": { + "$id": "609", + "name": "serialNumber" + } + } + }, + { + "$id": "610", + "kind": "property", + "name": "attributes", + "serializedName": "attributes", + "doc": "A set of key-value pairs that contain custom attributes set by the customer.", + "type": { + "$id": "611", + "kind": "dict", + "keyType": { + "$id": "612", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "valueType": { + "$id": "613", + "kind": "unknown", + "name": "unknown", + "crossLanguageDefinitionId": "", + "decorators": [] + }, + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.attributes", + "serializationOptions": { + "$id": "614", + "json": { + "$id": "615", + "name": "attributes" + } + } + }, + { + "$id": "616", + "kind": "property", + "name": "defaultDatasetsConfiguration", + "serializedName": "defaultDatasetsConfiguration", + "doc": "Stringified JSON that contains connector-specific default configuration for all datasets. Each dataset can have its own configuration that overrides the default settings here.", + "type": { + "$id": "617", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.defaultDatasetsConfiguration", + "serializationOptions": { + "$id": "618", + "json": { + "$id": "619", + "name": "defaultDatasetsConfiguration" + } + } + }, + { + "$id": "620", + "kind": "property", + "name": "defaultEventsConfiguration", + "serializedName": "defaultEventsConfiguration", + "doc": "Stringified JSON that contains connector-specific default configuration for all events. Each event can have its own configuration that overrides the default settings here.", + "type": { + "$id": "621", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.defaultEventsConfiguration", + "serializationOptions": { + "$id": "622", + "json": { + "$id": "623", + "name": "defaultEventsConfiguration" + } + } + }, + { + "$id": "624", + "kind": "property", + "name": "defaultTopic", + "serializedName": "defaultTopic", + "doc": "Object that describes the default topic information for the asset.", + "type": { + "$ref": "420" + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.defaultTopic", + "serializationOptions": { + "$id": "625", + "json": { + "$id": "626", + "name": "defaultTopic" + } + } + }, + { + "$id": "627", + "kind": "property", + "name": "datasets", + "serializedName": "datasets", + "doc": "Array of datasets that are part of the asset. Each dataset describes the data points that make up the set.", + "type": { + "$id": "628", + "kind": "array", + "name": "ArrayDataset", + "valueType": { + "$ref": "432" + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.datasets", + "serializationOptions": { + "$id": "629", + "json": { + "$id": "630", + "name": "datasets" + } + } + }, + { + "$id": "631", + "kind": "property", + "name": "events", + "serializedName": "events", + "doc": "Array of events that are part of the asset. Each event can have per-event configuration.", + "type": { + "$id": "632", + "kind": "array", + "name": "ArrayEvent", + "valueType": { + "$ref": "469" + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties.events", + "serializationOptions": { + "$id": "633", + "json": { + "$id": "634", + "name": "events" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.Foundations.ResourceUpdateModel.properties", + "serializationOptions": { + "$id": "635", + "json": { + "$id": "636", + "name": "properties" + } + } + } + ] + }, + { + "$ref": "565" + }, + { + "$id": "637", + "kind": "model", + "name": "AssetListResult", + "namespace": "Azure.ResourceManager", + "crossLanguageDefinitionId": "Azure.ResourceManager.ResourceListResult", + "usage": "Output,Json", + "doc": "The response of a Asset list operation.", + "decorators": [], + "properties": [ + { + "$id": "638", + "kind": "property", + "name": "value", + "serializedName": "value", + "doc": "The Asset items on this page", + "type": { + "$id": "639", + "kind": "array", + "name": "ArrayAsset", + "valueType": { + "$ref": "337" + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.ResourceListResult.value", + "serializationOptions": { + "$id": "640", + "json": { + "$id": "641", + "name": "value" + } + } + }, + { + "$id": "642", + "kind": "property", + "name": "nextLink", + "serializedName": "nextLink", + "doc": "The link to the next page of items", + "type": { + "$id": "643", + "kind": "url", + "name": "ResourceLocation", + "crossLanguageDefinitionId": "TypeSpec.Rest.ResourceLocation", + "baseType": { + "$id": "644", + "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": "645", + "json": { + "$id": "646", + "name": "nextLink" + } + } + } + ] + }, + { + "$id": "647", + "kind": "model", + "name": "OperationListResult", + "namespace": "Azure.ResourceManager.CommonTypes", + "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": "648", + "kind": "property", + "name": "value", + "serializedName": "value", + "doc": "The Operation items on this page", + "type": { + "$id": "649", + "kind": "array", + "name": "ArrayOperation", + "valueType": { + "$id": "650", + "kind": "model", + "name": "Operation", + "namespace": "Azure.ResourceManager.CommonTypes", + "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": "651", + "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": "652", + "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": "653", + "json": { + "$id": "654", + "name": "name" + } + } + }, + { + "$id": "655", + "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": "656", + "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": "657", + "json": { + "$id": "658", + "name": "isDataAction" + } + } + }, + { + "$id": "659", + "kind": "property", + "name": "display", + "serializedName": "display", + "doc": "Localized display information for this particular operation.", + "type": { + "$id": "660", + "kind": "model", + "name": "OperationDisplay", + "namespace": "Azure.ResourceManager.CommonTypes", + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.OperationDisplay", + "usage": "Output,Json", + "doc": "Localized display information for and operation.", + "decorators": [], + "properties": [ + { + "$id": "661", + "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": "662", + "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": "663", + "json": { + "$id": "664", + "name": "provider" + } + } + }, + { + "$id": "665", + "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": "666", + "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": "667", + "json": { + "$id": "668", + "name": "resource" + } + } + }, + { + "$id": "669", + "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": "670", + "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": "671", + "json": { + "$id": "672", + "name": "operation" + } + } + }, + { + "$id": "673", + "kind": "property", + "name": "description", + "serializedName": "description", + "doc": "The short, localized friendly description of the operation; suitable for tool tips and detailed views.", + "type": { + "$id": "674", + "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": "675", + "json": { + "$id": "676", + "name": "description" + } + } + } + ] + }, + "optional": true, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Operation.display", + "serializationOptions": { + "$id": "677", + "json": { + "$id": "678", + "name": "display" + } + } + }, + { + "$id": "679", + "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": "64" + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Operation.origin", + "serializationOptions": { + "$id": "680", + "json": { + "$id": "681", + "name": "origin" + } + } + }, + { + "$id": "682", + "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": "72" + }, + "optional": true, + "readOnly": true, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.Operation.actionType", + "serializationOptions": { + "$id": "683", + "json": { + "$id": "684", + "name": "actionType" + } + } + } + ] + }, + "crossLanguageDefinitionId": "TypeSpec.Array", + "decorators": [] + }, + "optional": false, + "readOnly": false, + "discriminator": false, + "flatten": false, + "decorators": [], + "crossLanguageDefinitionId": "Azure.ResourceManager.CommonTypes.OperationListResult.value", + "serializationOptions": { + "$id": "685", + "json": { + "$id": "686", + "name": "value" + } + } + }, + { + "$id": "687", + "kind": "property", + "name": "nextLink", + "serializedName": "nextLink", + "doc": "The link to the next page of items", + "type": { + "$id": "688", + "kind": "url", + "name": "ResourceLocation", + "crossLanguageDefinitionId": "TypeSpec.Rest.ResourceLocation", + "baseType": { + "$id": "689", + "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": "690", + "json": { + "$id": "691", + "name": "nextLink" + } + } + } + ] + }, + { + "$ref": "650" + }, + { + "$ref": "660" + } + ], + "clients": [ + { + "$id": "692", + "name": "DeviceRegistryClient", + "namespace": "Microsoft.DeviceRegistry", + "doc": "Microsoft.DeviceRegistry Resource Provider management API.", + "operations": [], + "parameters": [ + { + "$id": "693", + "name": "endpoint", + "nameInRequest": "endpoint", + "doc": "Service host", + "type": { + "$id": "694", + "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": "695", + "type": { + "$id": "696", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "https://management.azure.com" + } + } + ], + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry" + }, + { + "$id": "697", + "name": "Operations", + "namespace": "Microsoft.DeviceRegistry", + "operations": [ + { + "$id": "698", + "name": "list", + "resourceName": "Operations", + "doc": "List the operations for the provider", + "accessibility": "public", + "parameters": [ + { + "$id": "699", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "700", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "701", + "type": { + "$id": "702", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-11-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "703", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "704", + "kind": "constant", + "valueType": { + "$id": "705", + "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": "706", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "647" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "GET", + "uri": "{endpoint}", + "path": "/providers/Microsoft.DeviceRegistry/operations", + "bufferResponse": true, + "paging": { + "$id": "707", + "itemPropertySegments": [ + "value" + ], + "nextLink": { + "$id": "708", + "responseSegments": [ + "nextLink" + ], + "responseLocation": "Body" + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Azure.ResourceManager.Operations.list", + "decorators": [], + "examples": [ + { + "$id": "709", + "kind": "http", + "name": "List_Operations", + "description": "List_Operations", + "filePath": "2024-11-01/List_Operations.json", + "parameters": [ + { + "$id": "710", + "parameter": { + "$ref": "699" + }, + "value": { + "$id": "711", + "kind": "string", + "type": { + "$ref": "700" + }, + "value": "2024-11-01" + } + } + ], + "responses": [ + { + "$id": "712", + "response": { + "$ref": "706" + }, + "statusCode": 200, + "bodyValue": { + "$id": "713", + "kind": "model", + "type": { + "$ref": "647" + }, + "value": { + "$id": "714", + "value": { + "$id": "715", + "kind": "array", + "type": { + "$ref": "649" + }, + "value": [ + { + "$id": "716", + "kind": "model", + "type": { + "$ref": "650" + }, + "value": { + "$id": "717", + "name": { + "$id": "718", + "kind": "string", + "type": { + "$ref": "652" + }, + "value": "Microsoft.DeviceRegistry/assets/write" + }, + "display": { + "$id": "719", + "kind": "model", + "type": { + "$ref": "660" + }, + "value": { + "$id": "720", + "provider": { + "$id": "721", + "kind": "string", + "type": { + "$ref": "662" + }, + "value": "Microsoft Azure Device Registry" + }, + "resource": { + "$id": "722", + "kind": "string", + "type": { + "$ref": "666" + }, + "value": "Asset" + }, + "operation": { + "$id": "723", + "kind": "string", + "type": { + "$ref": "670" + }, + "value": "write" + } + } + } + } + } + ] + } + } + } + } + ] + } + ] + } + ], + "parent": "DeviceRegistryClient", + "parameters": [ + { + "$id": "724", + "name": "endpoint", + "nameInRequest": "endpoint", + "doc": "Service host", + "type": { + "$id": "725", + "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": "726", + "type": { + "$id": "727", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "https://management.azure.com" + } + } + ], + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Operations" + }, + { + "$id": "728", + "name": "OperationStatus", + "namespace": "Microsoft.DeviceRegistry", + "operations": [], + "parent": "DeviceRegistryClient", + "parameters": [ + { + "$id": "729", + "name": "endpoint", + "nameInRequest": "endpoint", + "doc": "Service host", + "type": { + "$id": "730", + "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": "731", + "type": { + "$id": "732", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "https://management.azure.com" + } + } + ], + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.OperationStatus" + }, + { + "$id": "733", + "name": "Assets", + "namespace": "Microsoft.DeviceRegistry", + "operations": [ + { + "$id": "734", + "name": "get", + "resourceName": "Asset", + "doc": "Get a Asset", + "accessibility": "public", + "parameters": [ + { + "$id": "735", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "736", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "737", + "type": { + "$id": "738", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-11-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "739", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "740", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "741", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "742", + "name": "resourceGroupName", + "nameInRequest": "resourceGroupName", + "doc": "The name of the resource group. The name is case insensitive.", + "type": { + "$id": "743", + "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": "744", + "name": "assetName", + "nameInRequest": "assetName", + "doc": "Asset name parameter.", + "type": { + "$id": "745", + "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": "746", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "747", + "kind": "constant", + "valueType": { + "$id": "748", + "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": "749", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "337" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "GET", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceRegistry/assets/{assetName}", + "bufferResponse": true, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Assets.get", + "decorators": [], + "examples": [ + { + "$id": "750", + "kind": "http", + "name": "Get_Asset", + "description": "Get_Asset", + "filePath": "2024-11-01/Get_Asset.json", + "parameters": [ + { + "$id": "751", + "parameter": { + "$ref": "735" + }, + "value": { + "$id": "752", + "kind": "string", + "type": { + "$ref": "736" + }, + "value": "2024-11-01" + } + }, + { + "$id": "753", + "parameter": { + "$ref": "739" + }, + "value": { + "$id": "754", + "kind": "string", + "type": { + "$ref": "740" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + }, + { + "$id": "755", + "parameter": { + "$ref": "742" + }, + "value": { + "$id": "756", + "kind": "string", + "type": { + "$ref": "743" + }, + "value": "myResourceGroup" + } + }, + { + "$id": "757", + "parameter": { + "$ref": "744" + }, + "value": { + "$id": "758", + "kind": "string", + "type": { + "$ref": "745" + }, + "value": "my-asset" + } + } + ], + "responses": [ + { + "$id": "759", + "response": { + "$ref": "749" + }, + "statusCode": 200, + "bodyValue": { + "$id": "760", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "761", + "id": { + "$id": "762", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assets/my-asset" + }, + "name": { + "$id": "763", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-asset" + }, + "type": { + "$id": "764", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assets" + }, + "location": { + "$id": "765", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "766", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "767", + "type": { + "$id": "768", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "769", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "770", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "771", + "site": { + "$id": "772", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "773", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "774", + "createdBy": { + "$id": "775", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "776", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "777", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "778", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "779", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "780", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "781", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "782", + "uuid": { + "$id": "783", + "kind": "string", + "type": { + "$ref": "341" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "enabled": { + "$id": "784", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "785", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "8ZBA6LRHU0A458969" + }, + "displayName": { + "$id": "786", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "AssetDisplayName" + }, + "description": { + "$id": "787", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset" + }, + "assetEndpointProfileRef": { + "$id": "788", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "version": { + "$id": "789", + "kind": "number", + "type": { + "$ref": "365" + }, + "value": 73766 + }, + "manufacturer": { + "$id": "790", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "791", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "792", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "793", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "794", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "795", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "796", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "797", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "64-103816-519918-8" + }, + "defaultDatasetsConfiguration": { + "$id": "798", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "799", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "800", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "801", + "path": { + "$id": "802", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "803", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "804", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "805", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "806", + "name": { + "$id": "807", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "808", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "809", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "810", + "path": { + "$id": "811", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "812", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "813", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "814", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "815", + "name": { + "$id": "816", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "817", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "818", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "819", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "820", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "821", + "name": { + "$id": "822", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "823", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "824", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "825", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "826", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "827", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "828", + "name": { + "$id": "829", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "830", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "831", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "832", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "833", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "834", + "path": { + "$id": "835", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "836", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "837", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "838", + "name": { + "$id": "839", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "840", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "841", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "842", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + }, + "provisioningState": { + "$id": "843", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + } + ] + }, + { + "$id": "844", + "kind": "http", + "name": "Get_Asset_With_SyncStatus", + "description": "Get_Asset_With_SyncStatus", + "filePath": "2024-11-01/Get_Asset_With_SyncStatus.json", + "parameters": [ + { + "$id": "845", + "parameter": { + "$ref": "735" + }, + "value": { + "$id": "846", + "kind": "string", + "type": { + "$ref": "736" + }, + "value": "2024-11-01" + } + }, + { + "$id": "847", + "parameter": { + "$ref": "739" + }, + "value": { + "$id": "848", + "kind": "string", + "type": { + "$ref": "740" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + }, + { + "$id": "849", + "parameter": { + "$ref": "742" + }, + "value": { + "$id": "850", + "kind": "string", + "type": { + "$ref": "743" + }, + "value": "myResourceGroup" + } + }, + { + "$id": "851", + "parameter": { + "$ref": "744" + }, + "value": { + "$id": "852", + "kind": "string", + "type": { + "$ref": "745" + }, + "value": "my-asset" + } + } + ], + "responses": [ + { + "$id": "853", + "response": { + "$ref": "749" + }, + "statusCode": 200, + "bodyValue": { + "$id": "854", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "855", + "id": { + "$id": "856", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assets/my-asset" + }, + "name": { + "$id": "857", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-asset" + }, + "type": { + "$id": "858", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assets" + }, + "location": { + "$id": "859", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "860", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "861", + "type": { + "$id": "862", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "863", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "864", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "865", + "site": { + "$id": "866", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "867", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "868", + "createdBy": { + "$id": "869", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "870", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "871", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "872", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "873", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "874", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "875", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "876", + "uuid": { + "$id": "877", + "kind": "string", + "type": { + "$ref": "341" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "enabled": { + "$id": "878", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "879", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "8ZBA6LRHU0A458969" + }, + "displayName": { + "$id": "880", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "AssetDisplayName" + }, + "description": { + "$id": "881", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset" + }, + "assetEndpointProfileRef": { + "$id": "882", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "version": { + "$id": "883", + "kind": "number", + "type": { + "$ref": "365" + }, + "value": 73766 + }, + "manufacturer": { + "$id": "884", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "885", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "886", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "887", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "888", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "889", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "890", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "891", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "64-103816-519918-8" + }, + "defaultDatasetsConfiguration": { + "$id": "892", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "893", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "894", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "895", + "path": { + "$id": "896", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "897", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "898", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "899", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "900", + "name": { + "$id": "901", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "902", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "903", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "904", + "path": { + "$id": "905", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "906", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "907", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "908", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "909", + "name": { + "$id": "910", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "911", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "912", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "913", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "914", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "915", + "name": { + "$id": "916", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "917", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "918", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "919", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "920", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "921", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "922", + "name": { + "$id": "923", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "924", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "925", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "926", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "927", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "928", + "path": { + "$id": "929", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "930", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "931", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "932", + "name": { + "$id": "933", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "934", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "935", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "936", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + }, + "status": { + "$id": "937", + "kind": "model", + "type": { + "$ref": "492" + }, + "value": { + "$id": "938", + "errors": { + "$id": "939", + "kind": "array", + "type": { + "$ref": "494" + }, + "value": [ + { + "$id": "940", + "kind": "model", + "type": { + "$ref": "495" + }, + "value": { + "$id": "941", + "code": { + "$id": "942", + "kind": "number", + "type": { + "$ref": "497" + }, + "value": 500 + }, + "message": { + "$id": "943", + "kind": "string", + "type": { + "$ref": "501" + }, + "value": "Internal Server Error" + } + } + } + ] + }, + "version": { + "$id": "944", + "kind": "number", + "type": { + "$ref": "507" + }, + "value": 1 + }, + "datasets": { + "$id": "945", + "kind": "array", + "type": { + "$ref": "511" + }, + "value": [ + { + "$id": "946", + "kind": "model", + "type": { + "$ref": "512" + }, + "value": { + "$id": "947", + "name": { + "$id": "948", + "kind": "string", + "type": { + "$ref": "514" + }, + "value": "dataset1" + }, + "messageSchemaReference": { + "$id": "949", + "kind": "model", + "type": { + "$ref": "518" + }, + "value": { + "$id": "950", + "schemaRegistryNamespace": { + "$id": "951", + "kind": "string", + "type": { + "$ref": "520" + }, + "value": "schemans" + }, + "schemaName": { + "$id": "952", + "kind": "string", + "type": { + "$ref": "524" + }, + "value": "schema1" + }, + "schemaVersion": { + "$id": "953", + "kind": "string", + "type": { + "$ref": "528" + }, + "value": "1.0.0" + } + } + } + } + } + ] + }, + "events": { + "$id": "954", + "kind": "array", + "type": { + "$ref": "536" + }, + "value": [ + { + "$id": "955", + "kind": "model", + "type": { + "$ref": "537" + }, + "value": { + "$id": "956", + "name": { + "$id": "957", + "kind": "string", + "type": { + "$ref": "539" + }, + "value": "event1" + }, + "messageSchemaReference": { + "$id": "958", + "kind": "model", + "type": { + "$ref": "518" + }, + "value": { + "$id": "959", + "schemaRegistryNamespace": { + "$id": "960", + "kind": "string", + "type": { + "$ref": "520" + }, + "value": "schemans" + }, + "schemaName": { + "$id": "961", + "kind": "string", + "type": { + "$ref": "524" + }, + "value": "schema2" + }, + "schemaVersion": { + "$id": "962", + "kind": "string", + "type": { + "$ref": "528" + }, + "value": "1.0.0" + } + } + } + } + } + ] + } + } + }, + "provisioningState": { + "$id": "963", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + } + ] + } + ] + }, + { + "$id": "964", + "name": "createOrReplace", + "resourceName": "Asset", + "doc": "Create a Asset", + "accessibility": "public", + "parameters": [ + { + "$id": "965", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "966", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "967", + "type": { + "$id": "968", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-11-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "969", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "970", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "971", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "972", + "name": "resourceGroupName", + "nameInRequest": "resourceGroupName", + "doc": "The name of the resource group. The name is case insensitive.", + "type": { + "$id": "973", + "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": "974", + "name": "assetName", + "nameInRequest": "assetName", + "doc": "Asset name parameter.", + "type": { + "$id": "975", + "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": "976", + "name": "contentType", + "nameInRequest": "Content-Type", + "doc": "Body parameter's content type. Known values are application/json", + "type": { + "$id": "977", + "kind": "constant", + "valueType": { + "$id": "978", + "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": "979", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "980", + "kind": "constant", + "valueType": { + "$id": "981", + "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": "982", + "name": "resource", + "nameInRequest": "resource", + "doc": "Resource create parameters.", + "type": { + "$ref": "337" + }, + "location": "Body", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "983", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "337" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + }, + { + "$id": "984", + "statusCodes": [ + 201 + ], + "bodyType": { + "$ref": "337" + }, + "headers": [ + { + "$id": "985", + "name": "azureAsyncOperation", + "nameInResponse": "Azure-AsyncOperation", + "doc": "A link to the status monitor", + "type": { + "$id": "986", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + } + }, + { + "$id": "987", + "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": "988", + "kind": "int32", + "name": "int32", + "crossLanguageDefinitionId": "TypeSpec.int32", + "decorators": [] + } + } + ], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "PUT", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceRegistry/assets/{assetName}", + "requestMediaTypes": [ + "application/json" + ], + "bufferResponse": true, + "longRunning": { + "$id": "989", + "finalStateVia": 0, + "finalResponse": { + "$id": "990", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "337" + } + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Assets.createOrReplace", + "decorators": [], + "examples": [ + { + "$id": "991", + "kind": "http", + "name": "Create_Asset_With_DiscoveredAssetRefs", + "description": "Create_Asset_With_DiscoveredAssetRefs", + "filePath": "2024-11-01/Create_Asset_With_DiscoveredAssetRef.json", + "parameters": [ + { + "$id": "992", + "parameter": { + "$ref": "965" + }, + "value": { + "$id": "993", + "kind": "string", + "type": { + "$ref": "966" + }, + "value": "2024-11-01" + } + }, + { + "$id": "994", + "parameter": { + "$ref": "969" + }, + "value": { + "$id": "995", + "kind": "string", + "type": { + "$ref": "970" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + }, + { + "$id": "996", + "parameter": { + "$ref": "972" + }, + "value": { + "$id": "997", + "kind": "string", + "type": { + "$ref": "973" + }, + "value": "myResourceGroup" + } + }, + { + "$id": "998", + "parameter": { + "$ref": "974" + }, + "value": { + "$id": "999", + "kind": "string", + "type": { + "$ref": "975" + }, + "value": "my-asset" + } + }, + { + "$id": "1000", + "parameter": { + "$ref": "982" + }, + "value": { + "$id": "1001", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "1002", + "location": { + "$id": "1003", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "1004", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "1005", + "type": { + "$id": "1006", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "1007", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "1008", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "1009", + "site": { + "$id": "1010", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "properties": { + "$id": "1011", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "1012", + "enabled": { + "$id": "1013", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "1014", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "8ZBA6LRHU0A458969" + }, + "displayName": { + "$id": "1015", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "AssetDisplayName" + }, + "description": { + "$id": "1016", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset" + }, + "assetEndpointProfileRef": { + "$id": "1017", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "manufacturer": { + "$id": "1018", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "1019", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "1020", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "1021", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "1022", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "1023", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "1024", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "1025", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "64-103816-519918-8" + }, + "discoveredAssetRefs": { + "$id": "1026", + "kind": "array", + "type": { + "$ref": "407" + }, + "value": [ + { + "$id": "1027", + "kind": "string", + "type": { + "$ref": "408" + }, + "value": "discoveredAsset1" + }, + { + "$id": "1028", + "kind": "string", + "type": { + "$ref": "408" + }, + "value": "discoveredAsset2" + } + ] + }, + "defaultDatasetsConfiguration": { + "$id": "1029", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "1030", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "1031", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1032", + "path": { + "$id": "1033", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "1034", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "1035", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "1036", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "1037", + "name": { + "$id": "1038", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "1039", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "1040", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1041", + "path": { + "$id": "1042", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "1043", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "1044", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "1045", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1046", + "name": { + "$id": "1047", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "1048", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "1049", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "1050", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "1051", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1052", + "name": { + "$id": "1053", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "1054", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "1055", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "1056", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "1057", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "1058", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1059", + "name": { + "$id": "1060", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "1061", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "1062", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "1063", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "1064", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1065", + "path": { + "$id": "1066", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "1067", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "1068", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1069", + "name": { + "$id": "1070", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "1071", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "1072", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "1073", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + } + } + } + } + } + } + ], + "responses": [ + { + "$id": "1074", + "response": { + "$ref": "983" + }, + "statusCode": 200, + "bodyValue": { + "$id": "1075", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "1076", + "id": { + "$id": "1077", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assets/my-asset" + }, + "name": { + "$id": "1078", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-asset" + }, + "type": { + "$id": "1079", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assets" + }, + "location": { + "$id": "1080", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "1081", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "1082", + "type": { + "$id": "1083", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "1084", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "1085", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "1086", + "site": { + "$id": "1087", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "1088", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "1089", + "createdBy": { + "$id": "1090", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "1091", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "1092", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "1093", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "1094", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "1095", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "1096", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "1097", + "uuid": { + "$id": "1098", + "kind": "string", + "type": { + "$ref": "341" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "enabled": { + "$id": "1099", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "1100", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "8ZBA6LRHU0A458969" + }, + "displayName": { + "$id": "1101", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "AssetDisplayName" + }, + "description": { + "$id": "1102", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset" + }, + "assetEndpointProfileRef": { + "$id": "1103", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "version": { + "$id": "1104", + "kind": "number", + "type": { + "$ref": "365" + }, + "value": 73766 + }, + "manufacturer": { + "$id": "1105", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "1106", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "1107", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "1108", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "1109", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "1110", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "1111", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "1112", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "64-103816-519918-8" + }, + "discoveredAssetRefs": { + "$id": "1113", + "kind": "array", + "type": { + "$ref": "407" + }, + "value": [ + { + "$id": "1114", + "kind": "string", + "type": { + "$ref": "408" + }, + "value": "discoveredAsset1" + }, + { + "$id": "1115", + "kind": "string", + "type": { + "$ref": "408" + }, + "value": "discoveredAsset2" + } + ] + }, + "defaultDatasetsConfiguration": { + "$id": "1116", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "1117", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "1118", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1119", + "path": { + "$id": "1120", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "1121", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "1122", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "1123", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "1124", + "name": { + "$id": "1125", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "1126", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "1127", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1128", + "path": { + "$id": "1129", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "1130", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "1131", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "1132", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1133", + "name": { + "$id": "1134", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "1135", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "1136", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "1137", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "1138", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1139", + "name": { + "$id": "1140", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "1141", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "1142", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "1143", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "1144", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "1145", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1146", + "name": { + "$id": "1147", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "1148", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "1149", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "1150", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "1151", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1152", + "path": { + "$id": "1153", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "1154", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "1155", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1156", + "name": { + "$id": "1157", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "1158", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "1159", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "1160", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + }, + "provisioningState": { + "$id": "1161", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + }, + { + "$id": "1162", + "response": { + "$ref": "984" + }, + "statusCode": 201, + "bodyValue": { + "$id": "1163", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "1164", + "id": { + "$id": "1165", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assets/my-asset" + }, + "name": { + "$id": "1166", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-asset" + }, + "type": { + "$id": "1167", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assets" + }, + "location": { + "$id": "1168", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "1169", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "1170", + "type": { + "$id": "1171", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "1172", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "1173", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "1174", + "site": { + "$id": "1175", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "1176", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "1177", + "createdBy": { + "$id": "1178", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "1179", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "1180", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "1181", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "1182", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "1183", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "1184", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "1185", + "uuid": { + "$id": "1186", + "kind": "string", + "type": { + "$ref": "341" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "enabled": { + "$id": "1187", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "1188", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "8ZBA6LRHU0A458969" + }, + "displayName": { + "$id": "1189", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "AssetDisplayName" + }, + "description": { + "$id": "1190", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset" + }, + "assetEndpointProfileRef": { + "$id": "1191", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "version": { + "$id": "1192", + "kind": "number", + "type": { + "$ref": "365" + }, + "value": 73766 + }, + "manufacturer": { + "$id": "1193", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "1194", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "1195", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "1196", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "1197", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "1198", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "1199", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "1200", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "64-103816-519918-8" + }, + "discoveredAssetRefs": { + "$id": "1201", + "kind": "array", + "type": { + "$ref": "407" + }, + "value": [ + { + "$id": "1202", + "kind": "string", + "type": { + "$ref": "408" + }, + "value": "discoveredAsset1" + }, + { + "$id": "1203", + "kind": "string", + "type": { + "$ref": "408" + }, + "value": "discoveredAsset2" + } + ] + }, + "defaultDatasetsConfiguration": { + "$id": "1204", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "1205", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "1206", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1207", + "path": { + "$id": "1208", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "1209", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "1210", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "1211", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "1212", + "name": { + "$id": "1213", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "1214", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "1215", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1216", + "path": { + "$id": "1217", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "1218", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "1219", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "1220", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1221", + "name": { + "$id": "1222", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "1223", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "1224", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "1225", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "1226", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1227", + "name": { + "$id": "1228", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "1229", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "1230", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "1231", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "1232", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "1233", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1234", + "name": { + "$id": "1235", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "1236", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "1237", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "1238", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "1239", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1240", + "path": { + "$id": "1241", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "1242", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "1243", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1244", + "name": { + "$id": "1245", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "1246", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "1247", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "1248", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + }, + "provisioningState": { + "$id": "1249", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Accepted" + } + } + } + } + } + } + ] + }, + { + "$id": "1250", + "kind": "http", + "name": "Create_Asset_With_ExternalAssetId", + "description": "Create_Asset_With_ExternalAssetId", + "filePath": "2024-11-01/Create_Asset_With_ExternalAssetId.json", + "parameters": [ + { + "$id": "1251", + "parameter": { + "$ref": "965" + }, + "value": { + "$id": "1252", + "kind": "string", + "type": { + "$ref": "966" + }, + "value": "2024-11-01" + } + }, + { + "$id": "1253", + "parameter": { + "$ref": "969" + }, + "value": { + "$id": "1254", + "kind": "string", + "type": { + "$ref": "970" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + }, + { + "$id": "1255", + "parameter": { + "$ref": "972" + }, + "value": { + "$id": "1256", + "kind": "string", + "type": { + "$ref": "973" + }, + "value": "myResourceGroup" + } + }, + { + "$id": "1257", + "parameter": { + "$ref": "974" + }, + "value": { + "$id": "1258", + "kind": "string", + "type": { + "$ref": "975" + }, + "value": "my-asset" + } + }, + { + "$id": "1259", + "parameter": { + "$ref": "982" + }, + "value": { + "$id": "1260", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "1261", + "location": { + "$id": "1262", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "1263", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "1264", + "type": { + "$id": "1265", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "1266", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "1267", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "1268", + "site": { + "$id": "1269", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "properties": { + "$id": "1270", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "1271", + "enabled": { + "$id": "1272", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "1273", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "8ZBA6LRHU0A458969" + }, + "displayName": { + "$id": "1274", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "AssetDisplayName" + }, + "description": { + "$id": "1275", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset" + }, + "assetEndpointProfileRef": { + "$id": "1276", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "manufacturer": { + "$id": "1277", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "1278", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "1279", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "1280", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "1281", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "1282", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "1283", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "1284", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "64-103816-519918-8" + }, + "defaultDatasetsConfiguration": { + "$id": "1285", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "1286", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "1287", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1288", + "path": { + "$id": "1289", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "1290", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "1291", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "1292", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "1293", + "name": { + "$id": "1294", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "1295", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "1296", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1297", + "path": { + "$id": "1298", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "1299", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "1300", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "1301", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1302", + "name": { + "$id": "1303", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "1304", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "1305", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "1306", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "1307", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1308", + "name": { + "$id": "1309", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "1310", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "1311", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "1312", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "1313", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "1314", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1315", + "name": { + "$id": "1316", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "1317", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "1318", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "1319", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "1320", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1321", + "path": { + "$id": "1322", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "1323", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "1324", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1325", + "name": { + "$id": "1326", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "1327", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "1328", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "1329", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + } + } + } + } + } + } + ], + "responses": [ + { + "$id": "1330", + "response": { + "$ref": "983" + }, + "statusCode": 200, + "bodyValue": { + "$id": "1331", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "1332", + "id": { + "$id": "1333", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assets/my-asset" + }, + "name": { + "$id": "1334", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-asset" + }, + "type": { + "$id": "1335", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assets" + }, + "location": { + "$id": "1336", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "1337", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "1338", + "type": { + "$id": "1339", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "1340", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "1341", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "1342", + "site": { + "$id": "1343", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "1344", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "1345", + "createdBy": { + "$id": "1346", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "1347", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "1348", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "1349", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "1350", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "1351", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "1352", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "1353", + "uuid": { + "$id": "1354", + "kind": "string", + "type": { + "$ref": "341" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "enabled": { + "$id": "1355", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "1356", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "8ZBA6LRHU0A458969" + }, + "displayName": { + "$id": "1357", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "AssetDisplayName" + }, + "description": { + "$id": "1358", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset" + }, + "assetEndpointProfileRef": { + "$id": "1359", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "version": { + "$id": "1360", + "kind": "number", + "type": { + "$ref": "365" + }, + "value": 73766 + }, + "manufacturer": { + "$id": "1361", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "1362", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "1363", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "1364", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "1365", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "1366", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "1367", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "1368", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "64-103816-519918-8" + }, + "defaultDatasetsConfiguration": { + "$id": "1369", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "1370", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "1371", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1372", + "path": { + "$id": "1373", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "1374", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "1375", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "1376", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "1377", + "name": { + "$id": "1378", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "1379", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "1380", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1381", + "path": { + "$id": "1382", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "1383", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "1384", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "1385", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1386", + "name": { + "$id": "1387", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "1388", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "1389", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "1390", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "1391", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1392", + "name": { + "$id": "1393", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "1394", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "1395", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "1396", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "1397", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "1398", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1399", + "name": { + "$id": "1400", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "1401", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "1402", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "1403", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "1404", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1405", + "path": { + "$id": "1406", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "1407", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "1408", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1409", + "name": { + "$id": "1410", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "1411", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "1412", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "1413", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + }, + "provisioningState": { + "$id": "1414", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + }, + { + "$id": "1415", + "response": { + "$ref": "984" + }, + "statusCode": 201, + "bodyValue": { + "$id": "1416", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "1417", + "id": { + "$id": "1418", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assets/my-asset" + }, + "name": { + "$id": "1419", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-asset" + }, + "type": { + "$id": "1420", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assets" + }, + "location": { + "$id": "1421", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "1422", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "1423", + "type": { + "$id": "1424", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "1425", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "1426", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "1427", + "site": { + "$id": "1428", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "1429", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "1430", + "createdBy": { + "$id": "1431", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "1432", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "1433", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "1434", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "1435", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "1436", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "1437", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "1438", + "uuid": { + "$id": "1439", + "kind": "string", + "type": { + "$ref": "341" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "enabled": { + "$id": "1440", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "1441", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "8ZBA6LRHU0A458969" + }, + "displayName": { + "$id": "1442", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "AssetDisplayName" + }, + "description": { + "$id": "1443", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset" + }, + "assetEndpointProfileRef": { + "$id": "1444", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "version": { + "$id": "1445", + "kind": "number", + "type": { + "$ref": "365" + }, + "value": 73766 + }, + "manufacturer": { + "$id": "1446", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "1447", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "1448", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "1449", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "1450", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "1451", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "1452", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "1453", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "64-103816-519918-8" + }, + "defaultDatasetsConfiguration": { + "$id": "1454", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "1455", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "1456", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1457", + "path": { + "$id": "1458", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "1459", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "1460", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "1461", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "1462", + "name": { + "$id": "1463", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "1464", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "1465", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1466", + "path": { + "$id": "1467", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "1468", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "1469", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "1470", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1471", + "name": { + "$id": "1472", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "1473", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "1474", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "1475", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "1476", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1477", + "name": { + "$id": "1478", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "1479", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "1480", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "1481", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "1482", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "1483", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1484", + "name": { + "$id": "1485", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "1486", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "1487", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "1488", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "1489", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1490", + "path": { + "$id": "1491", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "1492", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "1493", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1494", + "name": { + "$id": "1495", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "1496", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "1497", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "1498", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + }, + "provisioningState": { + "$id": "1499", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Accepted" + } + } + } + } + } + } + ] + }, + { + "$id": "1500", + "kind": "http", + "name": "Create_Asset_Without_DisplayName", + "description": "Create_Asset_Without_DisplayName", + "filePath": "2024-11-01/Create_Asset_Without_DisplayName.json", + "parameters": [ + { + "$id": "1501", + "parameter": { + "$ref": "965" + }, + "value": { + "$id": "1502", + "kind": "string", + "type": { + "$ref": "966" + }, + "value": "2024-11-01" + } + }, + { + "$id": "1503", + "parameter": { + "$ref": "969" + }, + "value": { + "$id": "1504", + "kind": "string", + "type": { + "$ref": "970" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + }, + { + "$id": "1505", + "parameter": { + "$ref": "972" + }, + "value": { + "$id": "1506", + "kind": "string", + "type": { + "$ref": "973" + }, + "value": "myResourceGroup" + } + }, + { + "$id": "1507", + "parameter": { + "$ref": "974" + }, + "value": { + "$id": "1508", + "kind": "string", + "type": { + "$ref": "975" + }, + "value": "my-asset" + } + }, + { + "$id": "1509", + "parameter": { + "$ref": "982" + }, + "value": { + "$id": "1510", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "1511", + "location": { + "$id": "1512", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "1513", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "1514", + "type": { + "$id": "1515", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "1516", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "1517", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "1518", + "site": { + "$id": "1519", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "properties": { + "$id": "1520", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "1521", + "enabled": { + "$id": "1522", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "1523", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "8ZBA6LRHU0A458969" + }, + "description": { + "$id": "1524", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset" + }, + "assetEndpointProfileRef": { + "$id": "1525", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "manufacturer": { + "$id": "1526", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "1527", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "1528", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "1529", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "1530", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "1531", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "1532", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "1533", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "64-103816-519918-8" + }, + "defaultDatasetsConfiguration": { + "$id": "1534", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "1535", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "1536", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1537", + "path": { + "$id": "1538", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "1539", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "1540", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "1541", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "1542", + "name": { + "$id": "1543", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "1544", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "1545", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1546", + "path": { + "$id": "1547", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "1548", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "1549", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "1550", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1551", + "name": { + "$id": "1552", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "1553", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "1554", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "1555", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "1556", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1557", + "name": { + "$id": "1558", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "1559", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "1560", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "1561", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "1562", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "1563", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1564", + "name": { + "$id": "1565", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "1566", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "1567", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "1568", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "1569", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1570", + "path": { + "$id": "1571", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "1572", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "1573", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1574", + "name": { + "$id": "1575", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "1576", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "1577", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "1578", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + } + } + } + } + } + } + ], + "responses": [ + { + "$id": "1579", + "response": { + "$ref": "983" + }, + "statusCode": 200, + "bodyValue": { + "$id": "1580", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "1581", + "id": { + "$id": "1582", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assets/my-asset" + }, + "name": { + "$id": "1583", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-asset" + }, + "type": { + "$id": "1584", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assets" + }, + "location": { + "$id": "1585", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "1586", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "1587", + "type": { + "$id": "1588", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "1589", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "1590", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "1591", + "site": { + "$id": "1592", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "1593", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "1594", + "createdBy": { + "$id": "1595", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "1596", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "1597", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "1598", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "1599", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "1600", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "1601", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "1602", + "uuid": { + "$id": "1603", + "kind": "string", + "type": { + "$ref": "341" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "enabled": { + "$id": "1604", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "1605", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "8ZBA6LRHU0A458969" + }, + "displayName": { + "$id": "1606", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "my-asset" + }, + "description": { + "$id": "1607", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset" + }, + "assetEndpointProfileRef": { + "$id": "1608", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "version": { + "$id": "1609", + "kind": "number", + "type": { + "$ref": "365" + }, + "value": 73766 + }, + "manufacturer": { + "$id": "1610", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "1611", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "1612", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "1613", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "1614", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "1615", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "1616", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "1617", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "64-103816-519918-8" + }, + "defaultDatasetsConfiguration": { + "$id": "1618", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "1619", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "1620", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1621", + "path": { + "$id": "1622", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "1623", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "1624", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "1625", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "1626", + "name": { + "$id": "1627", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "1628", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "1629", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1630", + "path": { + "$id": "1631", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "1632", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "1633", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "1634", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1635", + "name": { + "$id": "1636", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "1637", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "1638", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "1639", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "1640", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1641", + "name": { + "$id": "1642", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "1643", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "1644", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "1645", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "1646", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "1647", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1648", + "name": { + "$id": "1649", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "1650", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "1651", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "1652", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "1653", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1654", + "path": { + "$id": "1655", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "1656", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "1657", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1658", + "name": { + "$id": "1659", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "1660", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "1661", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "1662", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + }, + "provisioningState": { + "$id": "1663", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + }, + { + "$id": "1664", + "response": { + "$ref": "984" + }, + "statusCode": 201, + "bodyValue": { + "$id": "1665", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "1666", + "id": { + "$id": "1667", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assets/my-asset" + }, + "name": { + "$id": "1668", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-asset" + }, + "type": { + "$id": "1669", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assets" + }, + "location": { + "$id": "1670", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "1671", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "1672", + "type": { + "$id": "1673", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "1674", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "1675", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "1676", + "site": { + "$id": "1677", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "1678", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "1679", + "createdBy": { + "$id": "1680", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "1681", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "1682", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "1683", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "1684", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "1685", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "1686", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "1687", + "uuid": { + "$id": "1688", + "kind": "string", + "type": { + "$ref": "341" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "enabled": { + "$id": "1689", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "1690", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "8ZBA6LRHU0A458969" + }, + "displayName": { + "$id": "1691", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "my-asset" + }, + "description": { + "$id": "1692", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset" + }, + "assetEndpointProfileRef": { + "$id": "1693", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "version": { + "$id": "1694", + "kind": "number", + "type": { + "$ref": "365" + }, + "value": 73766 + }, + "manufacturer": { + "$id": "1695", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "1696", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "1697", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "1698", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "1699", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "1700", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "1701", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "1702", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "64-103816-519918-8" + }, + "defaultDatasetsConfiguration": { + "$id": "1703", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "1704", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "1705", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1706", + "path": { + "$id": "1707", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "1708", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "1709", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "1710", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "1711", + "name": { + "$id": "1712", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "1713", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "1714", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1715", + "path": { + "$id": "1716", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "1717", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "1718", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "1719", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1720", + "name": { + "$id": "1721", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "1722", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "1723", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "1724", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "1725", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1726", + "name": { + "$id": "1727", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "1728", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "1729", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "1730", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "1731", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "1732", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1733", + "name": { + "$id": "1734", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "1735", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "1736", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "1737", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "1738", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1739", + "path": { + "$id": "1740", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "1741", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "1742", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1743", + "name": { + "$id": "1744", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "1745", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "1746", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "1747", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + }, + "provisioningState": { + "$id": "1748", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Accepted" + } + } + } + } + } + } + ] + }, + { + "$id": "1749", + "kind": "http", + "name": "Create_Asset_Without_ExternalAssetId", + "description": "Create_Asset_Without_ExternalAssetId", + "filePath": "2024-11-01/Create_Asset_Without_ExternalAssetId.json", + "parameters": [ + { + "$id": "1750", + "parameter": { + "$ref": "965" + }, + "value": { + "$id": "1751", + "kind": "string", + "type": { + "$ref": "966" + }, + "value": "2024-11-01" + } + }, + { + "$id": "1752", + "parameter": { + "$ref": "969" + }, + "value": { + "$id": "1753", + "kind": "string", + "type": { + "$ref": "970" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + }, + { + "$id": "1754", + "parameter": { + "$ref": "972" + }, + "value": { + "$id": "1755", + "kind": "string", + "type": { + "$ref": "973" + }, + "value": "myResourceGroup" + } + }, + { + "$id": "1756", + "parameter": { + "$ref": "974" + }, + "value": { + "$id": "1757", + "kind": "string", + "type": { + "$ref": "975" + }, + "value": "my-asset" + } + }, + { + "$id": "1758", + "parameter": { + "$ref": "982" + }, + "value": { + "$id": "1759", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "1760", + "location": { + "$id": "1761", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "1762", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "1763", + "type": { + "$id": "1764", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "1765", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "1766", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "1767", + "site": { + "$id": "1768", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "properties": { + "$id": "1769", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "1770", + "enabled": { + "$id": "1771", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "displayName": { + "$id": "1772", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "AssetDisplayName" + }, + "description": { + "$id": "1773", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset" + }, + "assetEndpointProfileRef": { + "$id": "1774", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "manufacturer": { + "$id": "1775", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "1776", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "1777", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "1778", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "1779", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "1780", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "1781", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "1782", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "64-103816-519918-8" + }, + "defaultDatasetsConfiguration": { + "$id": "1783", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "1784", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "1785", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1786", + "path": { + "$id": "1787", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "1788", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "1789", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "1790", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "1791", + "name": { + "$id": "1792", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "1793", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "1794", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1795", + "path": { + "$id": "1796", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "1797", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "1798", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "1799", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1800", + "name": { + "$id": "1801", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "1802", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "1803", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "1804", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "1805", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1806", + "name": { + "$id": "1807", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "1808", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "1809", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "1810", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "1811", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "1812", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1813", + "name": { + "$id": "1814", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "1815", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "1816", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "1817", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "1818", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1819", + "path": { + "$id": "1820", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "1821", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "1822", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1823", + "name": { + "$id": "1824", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "1825", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "1826", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "1827", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + } + } + } + } + } + } + ], + "responses": [ + { + "$id": "1828", + "response": { + "$ref": "983" + }, + "statusCode": 200, + "bodyValue": { + "$id": "1829", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "1830", + "id": { + "$id": "1831", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assets/my-asset" + }, + "name": { + "$id": "1832", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-asset" + }, + "type": { + "$id": "1833", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assets" + }, + "location": { + "$id": "1834", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "1835", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "1836", + "type": { + "$id": "1837", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "1838", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "1839", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "1840", + "site": { + "$id": "1841", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "1842", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "1843", + "createdBy": { + "$id": "1844", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "1845", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "1846", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "1847", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "1848", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "1849", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "1850", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "1851", + "uuid": { + "$id": "1852", + "kind": "string", + "type": { + "$ref": "341" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "enabled": { + "$id": "1853", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "1854", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "displayName": { + "$id": "1855", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "AssetDisplayName" + }, + "description": { + "$id": "1856", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset" + }, + "assetEndpointProfileRef": { + "$id": "1857", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "version": { + "$id": "1858", + "kind": "number", + "type": { + "$ref": "365" + }, + "value": 73766 + }, + "manufacturer": { + "$id": "1859", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "1860", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "1861", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "1862", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "1863", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "1864", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "1865", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "1866", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "64-103816-519918-8" + }, + "defaultDatasetsConfiguration": { + "$id": "1867", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "1868", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "1869", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1870", + "path": { + "$id": "1871", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "1872", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "1873", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "1874", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "1875", + "name": { + "$id": "1876", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "1877", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "1878", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1879", + "path": { + "$id": "1880", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "1881", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "1882", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "1883", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1884", + "name": { + "$id": "1885", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "1886", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "1887", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "1888", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "1889", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1890", + "name": { + "$id": "1891", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "1892", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "1893", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "1894", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "1895", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "1896", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1897", + "name": { + "$id": "1898", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "1899", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "1900", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "1901", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "1902", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1903", + "path": { + "$id": "1904", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "1905", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "1906", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1907", + "name": { + "$id": "1908", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "1909", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "1910", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "1911", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + }, + "provisioningState": { + "$id": "1912", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + }, + { + "$id": "1913", + "response": { + "$ref": "984" + }, + "statusCode": 201, + "bodyValue": { + "$id": "1914", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "1915", + "id": { + "$id": "1916", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assets/my-asset" + }, + "name": { + "$id": "1917", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-asset" + }, + "type": { + "$id": "1918", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assets" + }, + "location": { + "$id": "1919", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "1920", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "1921", + "type": { + "$id": "1922", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "1923", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "1924", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "1925", + "site": { + "$id": "1926", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "1927", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "1928", + "createdBy": { + "$id": "1929", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "1930", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "1931", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "1932", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "1933", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "1934", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "1935", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "1936", + "uuid": { + "$id": "1937", + "kind": "string", + "type": { + "$ref": "341" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "enabled": { + "$id": "1938", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "1939", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "displayName": { + "$id": "1940", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "AssetDisplayName" + }, + "description": { + "$id": "1941", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset" + }, + "assetEndpointProfileRef": { + "$id": "1942", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "version": { + "$id": "1943", + "kind": "number", + "type": { + "$ref": "365" + }, + "value": 73766 + }, + "manufacturer": { + "$id": "1944", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "1945", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "1946", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "1947", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "1948", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "1949", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "1950", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "1951", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "64-103816-519918-8" + }, + "defaultDatasetsConfiguration": { + "$id": "1952", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "1953", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "1954", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1955", + "path": { + "$id": "1956", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "1957", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "1958", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "1959", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "1960", + "name": { + "$id": "1961", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "1962", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "1963", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1964", + "path": { + "$id": "1965", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "1966", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "1967", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "1968", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1969", + "name": { + "$id": "1970", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "1971", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "1972", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "1973", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "1974", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "1975", + "name": { + "$id": "1976", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "1977", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "1978", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "1979", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "1980", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "1981", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1982", + "name": { + "$id": "1983", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "1984", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "1985", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "1986", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "1987", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "1988", + "path": { + "$id": "1989", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "1990", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "1991", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "1992", + "name": { + "$id": "1993", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "1994", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "1995", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "1996", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + }, + "provisioningState": { + "$id": "1997", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Accepted" + } + } + } + } + } + } + ] + } + ] + }, + { + "$id": "1998", + "name": "update", + "resourceName": "Asset", + "doc": "Update a Asset", + "accessibility": "public", + "parameters": [ + { + "$id": "1999", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "2000", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "2001", + "type": { + "$id": "2002", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-11-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2003", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "2004", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "2005", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2006", + "name": "resourceGroupName", + "nameInRequest": "resourceGroupName", + "doc": "The name of the resource group. The name is case insensitive.", + "type": { + "$id": "2007", + "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": "2008", + "name": "assetName", + "nameInRequest": "assetName", + "doc": "Asset name parameter.", + "type": { + "$id": "2009", + "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": "2010", + "name": "contentType", + "nameInRequest": "Content-Type", + "doc": "Body parameter's content type. Known values are application/json", + "type": { + "$id": "2011", + "kind": "constant", + "valueType": { + "$id": "2012", + "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": "2013", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "2014", + "kind": "constant", + "valueType": { + "$id": "2015", + "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": "2016", + "name": "properties", + "nameInRequest": "properties", + "doc": "The resource properties to be updated.", + "type": { + "$ref": "557" + }, + "location": "Body", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "2017", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "337" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + }, + { + "$id": "2018", + "statusCodes": [ + 202 + ], + "headers": [ + { + "$id": "2019", + "name": "location", + "nameInResponse": "Location", + "doc": "The Location header contains the URL where the status of the long running operation can be checked.", + "type": { + "$id": "2020", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + } + }, + { + "$id": "2021", + "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": "2022", + "kind": "int32", + "name": "int32", + "crossLanguageDefinitionId": "TypeSpec.int32", + "decorators": [] + } + } + ], + "isErrorResponse": false + } + ], + "httpMethod": "PATCH", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceRegistry/assets/{assetName}", + "requestMediaTypes": [ + "application/json" + ], + "bufferResponse": true, + "longRunning": { + "$id": "2023", + "finalStateVia": 1, + "finalResponse": { + "$id": "2024", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "337" + } + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": false, + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Assets.update", + "decorators": [], + "examples": [ + { + "$id": "2025", + "kind": "http", + "name": "Update_Asset", + "description": "Update_Asset", + "filePath": "2024-11-01/Update_Asset.json", + "parameters": [ + { + "$id": "2026", + "parameter": { + "$ref": "1999" + }, + "value": { + "$id": "2027", + "kind": "string", + "type": { + "$ref": "2000" + }, + "value": "2024-11-01" + } + }, + { + "$id": "2028", + "parameter": { + "$ref": "2003" + }, + "value": { + "$id": "2029", + "kind": "string", + "type": { + "$ref": "2004" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + }, + { + "$id": "2030", + "parameter": { + "$ref": "2006" + }, + "value": { + "$id": "2031", + "kind": "string", + "type": { + "$ref": "2007" + }, + "value": "myResourceGroup" + } + }, + { + "$id": "2032", + "parameter": { + "$ref": "2008" + }, + "value": { + "$id": "2033", + "kind": "string", + "type": { + "$ref": "2009" + }, + "value": "my-asset" + } + }, + { + "$id": "2034", + "parameter": { + "$ref": "2016" + }, + "value": { + "$id": "2035", + "kind": "model", + "type": { + "$ref": "557" + }, + "value": { + "$id": "2036", + "properties": { + "$id": "2037", + "kind": "model", + "type": { + "$ref": "565" + }, + "value": { + "$id": "2038", + "enabled": { + "$id": "2039", + "kind": "boolean", + "type": { + "$ref": "567" + }, + "value": false + }, + "displayName": { + "$id": "2040", + "kind": "string", + "type": { + "$ref": "571" + }, + "value": "NewAssetDisplayName" + } + } + } + } + } + } + ], + "responses": [ + { + "$id": "2041", + "response": { + "$ref": "2017" + }, + "statusCode": 200, + "bodyValue": { + "$id": "2042", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "2043", + "id": { + "$id": "2044", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assets/my-asset" + }, + "name": { + "$id": "2045", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-asset" + }, + "type": { + "$id": "2046", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assets" + }, + "location": { + "$id": "2047", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "2048", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "2049", + "type": { + "$id": "2050", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "2051", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "2052", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "2053", + "site": { + "$id": "2054", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "2055", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "2056", + "createdBy": { + "$id": "2057", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "2058", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "2059", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "2060", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "2061", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "2062", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "2063", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "2064", + "uuid": { + "$id": "2065", + "kind": "string", + "type": { + "$ref": "341" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "enabled": { + "$id": "2066", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "2067", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "8ZBA6LRHU0A458969" + }, + "displayName": { + "$id": "2068", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "NewAssetDisplayName" + }, + "description": { + "$id": "2069", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset" + }, + "assetEndpointProfileRef": { + "$id": "2070", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "version": { + "$id": "2071", + "kind": "number", + "type": { + "$ref": "365" + }, + "value": 73766 + }, + "manufacturer": { + "$id": "2072", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "2073", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "2074", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "2075", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "2076", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "2077", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "2078", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "2079", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "64-103816-519918-8" + }, + "defaultDatasetsConfiguration": { + "$id": "2080", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "2081", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "2082", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "2083", + "path": { + "$id": "2084", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "2085", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "2086", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "2087", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "2088", + "name": { + "$id": "2089", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "2090", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "2091", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "2092", + "path": { + "$id": "2093", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "2094", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "2095", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "2096", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "2097", + "name": { + "$id": "2098", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "2099", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "2100", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "2101", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "2102", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "2103", + "name": { + "$id": "2104", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "2105", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "2106", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "2107", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "2108", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "2109", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "2110", + "name": { + "$id": "2111", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "2112", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "2113", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "2114", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "2115", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "2116", + "path": { + "$id": "2117", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "2118", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "2119", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "2120", + "name": { + "$id": "2121", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "2122", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "2123", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "2124", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + }, + "provisioningState": { + "$id": "2125", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + }, + { + "$id": "2126", + "response": { + "$ref": "2018" + }, + "statusCode": 202 + } + ] + } + ] + }, + { + "$id": "2127", + "name": "delete", + "resourceName": "Asset", + "doc": "Delete a Asset", + "accessibility": "public", + "parameters": [ + { + "$id": "2128", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "2129", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "2130", + "type": { + "$id": "2131", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-11-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2132", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "2133", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "2134", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2135", + "name": "resourceGroupName", + "nameInRequest": "resourceGroupName", + "doc": "The name of the resource group. The name is case insensitive.", + "type": { + "$id": "2136", + "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": "2137", + "name": "assetName", + "nameInRequest": "assetName", + "doc": "Asset name parameter.", + "type": { + "$id": "2138", + "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": "2139", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "2140", + "kind": "constant", + "valueType": { + "$id": "2141", + "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": "2142", + "statusCodes": [ + 202 + ], + "headers": [ + { + "$id": "2143", + "name": "location", + "nameInResponse": "Location", + "doc": "The Location header contains the URL where the status of the long running operation can be checked.", + "type": { + "$id": "2144", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + } + }, + { + "$id": "2145", + "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": "2146", + "kind": "int32", + "name": "int32", + "crossLanguageDefinitionId": "TypeSpec.int32", + "decorators": [] + } + } + ], + "isErrorResponse": false + }, + { + "$id": "2147", + "statusCodes": [ + 204 + ], + "headers": [], + "isErrorResponse": false + } + ], + "httpMethod": "DELETE", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceRegistry/assets/{assetName}", + "bufferResponse": true, + "longRunning": { + "$id": "2148", + "finalStateVia": 1, + "finalResponse": { + "$id": "2149", + "statusCodes": [ + 204 + ] + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Assets.delete", + "decorators": [], + "examples": [ + { + "$id": "2150", + "kind": "http", + "name": "Delete_Asset", + "description": "Delete_Asset", + "filePath": "2024-11-01/Delete_Asset.json", + "parameters": [ + { + "$id": "2151", + "parameter": { + "$ref": "2128" + }, + "value": { + "$id": "2152", + "kind": "string", + "type": { + "$ref": "2129" + }, + "value": "2024-11-01" + } + }, + { + "$id": "2153", + "parameter": { + "$ref": "2132" + }, + "value": { + "$id": "2154", + "kind": "string", + "type": { + "$ref": "2133" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + }, + { + "$id": "2155", + "parameter": { + "$ref": "2135" + }, + "value": { + "$id": "2156", + "kind": "string", + "type": { + "$ref": "2136" + }, + "value": "myResourceGroup" + } + }, + { + "$id": "2157", + "parameter": { + "$ref": "2137" + }, + "value": { + "$id": "2158", + "kind": "string", + "type": { + "$ref": "2138" + }, + "value": "my-asset" + } + } + ], + "responses": [ + { + "$id": "2159", + "response": { + "$ref": "2142" + }, + "statusCode": 202 + }, + { + "$id": "2160", + "response": { + "$ref": "2147" + }, + "statusCode": 204 + } + ] + } + ] + }, + { + "$id": "2161", + "name": "listByResourceGroup", + "resourceName": "Asset", + "doc": "List Asset resources by resource group", + "accessibility": "public", + "parameters": [ + { + "$id": "2162", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "2163", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "2164", + "type": { + "$id": "2165", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-11-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2166", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "2167", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "2168", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2169", + "name": "resourceGroupName", + "nameInRequest": "resourceGroupName", + "doc": "The name of the resource group. The name is case insensitive.", + "type": { + "$id": "2170", + "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": "2171", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "2172", + "kind": "constant", + "valueType": { + "$id": "2173", + "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": "2174", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "637" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "GET", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceRegistry/assets", + "bufferResponse": true, + "paging": { + "$id": "2175", + "itemPropertySegments": [ + "value" + ], + "nextLink": { + "$id": "2176", + "responseSegments": [ + "nextLink" + ], + "responseLocation": "Body" + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Assets.listByResourceGroup", + "decorators": [], + "examples": [ + { + "$id": "2177", + "kind": "http", + "name": "List_Assets_ResourceGroup", + "description": "List_Assets_ResourceGroup", + "filePath": "2024-11-01/List_Assets_ResourceGroup.json", + "parameters": [ + { + "$id": "2178", + "parameter": { + "$ref": "2162" + }, + "value": { + "$id": "2179", + "kind": "string", + "type": { + "$ref": "2163" + }, + "value": "2024-11-01" + } + }, + { + "$id": "2180", + "parameter": { + "$ref": "2166" + }, + "value": { + "$id": "2181", + "kind": "string", + "type": { + "$ref": "2167" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + }, + { + "$id": "2182", + "parameter": { + "$ref": "2169" + }, + "value": { + "$id": "2183", + "kind": "string", + "type": { + "$ref": "2170" + }, + "value": "myResourceGroup" + } + } + ], + "responses": [ + { + "$id": "2184", + "response": { + "$ref": "2174" + }, + "statusCode": 200, + "bodyValue": { + "$id": "2185", + "kind": "model", + "type": { + "$ref": "637" + }, + "value": { + "$id": "2186", + "value": { + "$id": "2187", + "kind": "array", + "type": { + "$ref": "639" + }, + "value": [ + { + "$id": "2188", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "2189", + "id": { + "$id": "2190", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assets/my-asset" + }, + "name": { + "$id": "2191", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-asset" + }, + "type": { + "$id": "2192", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assets" + }, + "location": { + "$id": "2193", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "2194", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "2195", + "type": { + "$id": "2196", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "2197", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "2198", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "2199", + "site": { + "$id": "2200", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "2201", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "2202", + "createdBy": { + "$id": "2203", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "2204", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "2205", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "2206", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "2207", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "2208", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "2209", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "2210", + "uuid": { + "$id": "2211", + "kind": "string", + "type": { + "$ref": "341" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "enabled": { + "$id": "2212", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "2213", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "8ZBA6LRHU0A458969" + }, + "displayName": { + "$id": "2214", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "AssetDisplayName" + }, + "description": { + "$id": "2215", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset" + }, + "assetEndpointProfileRef": { + "$id": "2216", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "version": { + "$id": "2217", + "kind": "number", + "type": { + "$ref": "365" + }, + "value": 73766 + }, + "manufacturer": { + "$id": "2218", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "2219", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "2220", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "2221", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "2222", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "2223", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "2224", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "2225", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "64-103816-519918-8" + }, + "defaultDatasetsConfiguration": { + "$id": "2226", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "2227", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "2228", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "2229", + "path": { + "$id": "2230", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "2231", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "2232", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "2233", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "2234", + "name": { + "$id": "2235", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "2236", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "2237", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "2238", + "path": { + "$id": "2239", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "2240", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "2241", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "2242", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "2243", + "name": { + "$id": "2244", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "2245", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "2246", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "2247", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "2248", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "2249", + "name": { + "$id": "2250", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "2251", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "2252", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "2253", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "2254", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "2255", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "2256", + "name": { + "$id": "2257", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "2258", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "2259", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "2260", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "2261", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "2262", + "path": { + "$id": "2263", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "2264", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "2265", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "2266", + "name": { + "$id": "2267", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "2268", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "2269", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "2270", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + }, + "provisioningState": { + "$id": "2271", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + }, + { + "$id": "2272", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "2273", + "id": { + "$id": "2274", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assets/my-asset1" + }, + "name": { + "$id": "2275", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-asset1" + }, + "type": { + "$id": "2276", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assets" + }, + "location": { + "$id": "2277", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "2278", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "2279", + "type": { + "$id": "2280", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "2281", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "2282", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "2283", + "site": { + "$id": "2284", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-2" + } + } + }, + "systemData": { + "$id": "2285", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "2286", + "createdBy": { + "$id": "2287", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "2288", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "2289", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "2290", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "2291", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "2292", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "2293", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "2294", + "uuid": { + "$id": "2295", + "kind": "string", + "type": { + "$ref": "341" + }, + "value": "7824a74f-21e1-4458-ae06-604d3a241d2c" + }, + "enabled": { + "$id": "2296", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "2297", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "9AVD7KLPU03377981" + }, + "displayName": { + "$id": "2298", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "AssetDisplayName 1" + }, + "description": { + "$id": "2299", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset 1" + }, + "assetEndpointProfileRef": { + "$id": "2300", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "version": { + "$id": "2301", + "kind": "number", + "type": { + "$ref": "365" + }, + "value": 73766 + }, + "manufacturer": { + "$id": "2302", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "2303", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "2304", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "2305", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "2306", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "2307", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "2308", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "2309", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "12-984302-792341-8" + }, + "defaultDatasetsConfiguration": { + "$id": "2310", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "2311", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "2312", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "2313", + "path": { + "$id": "2314", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "2315", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "2316", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "2317", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "2318", + "name": { + "$id": "2319", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "2320", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "2321", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "2322", + "path": { + "$id": "2323", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "2324", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "2325", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "2326", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "2327", + "name": { + "$id": "2328", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "2329", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "2330", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "2331", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "2332", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "2333", + "name": { + "$id": "2334", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "2335", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "2336", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "2337", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "2338", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "2339", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "2340", + "name": { + "$id": "2341", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "2342", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "2343", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "2344", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "2345", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "2346", + "path": { + "$id": "2347", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "2348", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "2349", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "2350", + "name": { + "$id": "2351", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "2352", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "2353", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "2354", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + }, + "provisioningState": { + "$id": "2355", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + ] + } + } + } + } + ] + } + ] + }, + { + "$id": "2356", + "name": "listBySubscription", + "resourceName": "Asset", + "doc": "List Asset resources by subscription ID", + "accessibility": "public", + "parameters": [ + { + "$id": "2357", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "2358", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "2359", + "type": { + "$id": "2360", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-11-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2361", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "2362", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "2363", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2364", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "2365", + "kind": "constant", + "valueType": { + "$id": "2366", + "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": "2367", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "637" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "GET", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/providers/Microsoft.DeviceRegistry/assets", + "bufferResponse": true, + "paging": { + "$id": "2368", + "itemPropertySegments": [ + "value" + ], + "nextLink": { + "$id": "2369", + "responseSegments": [ + "nextLink" + ], + "responseLocation": "Body" + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Assets.listBySubscription", + "decorators": [], + "examples": [ + { + "$id": "2370", + "kind": "http", + "name": "List_Assets_Subscription", + "description": "List_Assets_Subscription", + "filePath": "2024-11-01/List_Assets_Subscription.json", + "parameters": [ + { + "$id": "2371", + "parameter": { + "$ref": "2357" + }, + "value": { + "$id": "2372", + "kind": "string", + "type": { + "$ref": "2358" + }, + "value": "2024-11-01" + } + }, + { + "$id": "2373", + "parameter": { + "$ref": "2361" + }, + "value": { + "$id": "2374", + "kind": "string", + "type": { + "$ref": "2362" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + } + ], + "responses": [ + { + "$id": "2375", + "response": { + "$ref": "2367" + }, + "statusCode": 200, + "bodyValue": { + "$id": "2376", + "kind": "model", + "type": { + "$ref": "637" + }, + "value": { + "$id": "2377", + "value": { + "$id": "2378", + "kind": "array", + "type": { + "$ref": "639" + }, + "value": [ + { + "$id": "2379", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "2380", + "id": { + "$id": "2381", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assets/my-asset" + }, + "name": { + "$id": "2382", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-asset" + }, + "type": { + "$id": "2383", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assets" + }, + "location": { + "$id": "2384", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "2385", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "2386", + "type": { + "$id": "2387", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "2388", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "2389", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "2390", + "site": { + "$id": "2391", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "2392", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "2393", + "createdBy": { + "$id": "2394", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "2395", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "2396", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "2397", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "2398", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "2399", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "2400", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "2401", + "uuid": { + "$id": "2402", + "kind": "string", + "type": { + "$ref": "341" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "enabled": { + "$id": "2403", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "2404", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "8ZBA6LRHU0A458969" + }, + "displayName": { + "$id": "2405", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "AssetDisplayName" + }, + "description": { + "$id": "2406", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset" + }, + "assetEndpointProfileRef": { + "$id": "2407", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "version": { + "$id": "2408", + "kind": "number", + "type": { + "$ref": "365" + }, + "value": 73766 + }, + "manufacturer": { + "$id": "2409", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "2410", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "2411", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "2412", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "2413", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "2414", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "2415", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "2416", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "64-103816-519918-8" + }, + "defaultDatasetsConfiguration": { + "$id": "2417", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "2418", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "2419", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "2420", + "path": { + "$id": "2421", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "2422", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "2423", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "2424", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "2425", + "name": { + "$id": "2426", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "2427", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "2428", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "2429", + "path": { + "$id": "2430", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "2431", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "2432", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "2433", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "2434", + "name": { + "$id": "2435", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "2436", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "2437", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "2438", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "2439", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "2440", + "name": { + "$id": "2441", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "2442", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "2443", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "2444", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "2445", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "2446", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "2447", + "name": { + "$id": "2448", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "2449", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "2450", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "2451", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "2452", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "2453", + "path": { + "$id": "2454", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "2455", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "2456", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "2457", + "name": { + "$id": "2458", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "2459", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "2460", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "2461", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + }, + "provisioningState": { + "$id": "2462", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + }, + { + "$id": "2463", + "kind": "model", + "type": { + "$ref": "337" + }, + "value": { + "$id": "2464", + "id": { + "$id": "2465", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assets/my-asset1" + }, + "name": { + "$id": "2466", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-asset1" + }, + "type": { + "$id": "2467", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assets" + }, + "location": { + "$id": "2468", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "2469", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "2470", + "type": { + "$id": "2471", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "2472", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "2473", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "2474", + "site": { + "$id": "2475", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-2" + } + } + }, + "systemData": { + "$id": "2476", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "2477", + "createdBy": { + "$id": "2478", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "2479", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "2480", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "2481", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "2482", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "2483", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "2484", + "kind": "model", + "type": { + "$ref": "339" + }, + "value": { + "$id": "2485", + "uuid": { + "$id": "2486", + "kind": "string", + "type": { + "$ref": "341" + }, + "value": "7824a74f-21e1-4458-ae06-604d3a241d2c" + }, + "enabled": { + "$id": "2487", + "kind": "boolean", + "type": { + "$ref": "345" + }, + "value": true + }, + "externalAssetId": { + "$id": "2488", + "kind": "string", + "type": { + "$ref": "349" + }, + "value": "9AVD7KLPU03377981" + }, + "displayName": { + "$id": "2489", + "kind": "string", + "type": { + "$ref": "353" + }, + "value": "AssetDisplayName 1" + }, + "description": { + "$id": "2490", + "kind": "string", + "type": { + "$ref": "357" + }, + "value": "This is a sample Asset 1" + }, + "assetEndpointProfileRef": { + "$id": "2491", + "kind": "string", + "type": { + "$ref": "361" + }, + "value": "myAssetEndpointProfile" + }, + "version": { + "$id": "2492", + "kind": "number", + "type": { + "$ref": "365" + }, + "value": 73766 + }, + "manufacturer": { + "$id": "2493", + "kind": "string", + "type": { + "$ref": "369" + }, + "value": "Contoso" + }, + "manufacturerUri": { + "$id": "2494", + "kind": "string", + "type": { + "$ref": "373" + }, + "value": "https://www.contoso.com/manufacturerUri" + }, + "model": { + "$id": "2495", + "kind": "string", + "type": { + "$ref": "377" + }, + "value": "ContosoModel" + }, + "productCode": { + "$id": "2496", + "kind": "string", + "type": { + "$ref": "381" + }, + "value": "SA34VDG" + }, + "hardwareRevision": { + "$id": "2497", + "kind": "string", + "type": { + "$ref": "385" + }, + "value": "1.0" + }, + "softwareRevision": { + "$id": "2498", + "kind": "string", + "type": { + "$ref": "389" + }, + "value": "2.0" + }, + "documentationUri": { + "$id": "2499", + "kind": "string", + "type": { + "$ref": "393" + }, + "value": "https://www.example.com/manual" + }, + "serialNumber": { + "$id": "2500", + "kind": "string", + "type": { + "$ref": "397" + }, + "value": "12-984302-792341-8" + }, + "defaultDatasetsConfiguration": { + "$id": "2501", + "kind": "string", + "type": { + "$ref": "412" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultEventsConfiguration": { + "$id": "2502", + "kind": "string", + "type": { + "$ref": "416" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "defaultTopic": { + "$id": "2503", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "2504", + "path": { + "$id": "2505", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/defaultTopic" + }, + "retain": { + "$id": "2506", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "datasets": { + "$id": "2507", + "kind": "array", + "type": { + "$ref": "431" + }, + "value": [ + { + "$id": "2508", + "kind": "model", + "type": { + "$ref": "432" + }, + "value": { + "$id": "2509", + "name": { + "$id": "2510", + "kind": "string", + "type": { + "$ref": "434" + }, + "value": "dataset1" + }, + "datasetConfiguration": { + "$id": "2511", + "kind": "string", + "type": { + "$ref": "438" + }, + "value": "{\"publishingInterval\":10,\"samplingInterval\":15,\"queueSize\":20}" + }, + "topic": { + "$id": "2512", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "2513", + "path": { + "$id": "2514", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/dataset1" + }, + "retain": { + "$id": "2515", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + }, + "dataPoints": { + "$id": "2516", + "kind": "array", + "type": { + "$ref": "445" + }, + "value": [ + { + "$id": "2517", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "2518", + "name": { + "$id": "2519", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint1" + }, + "dataSource": { + "$id": "2520", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1" + }, + "observabilityMode": { + "$id": "2521", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "Counter" + }, + "dataPointConfiguration": { + "$id": "2522", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":8,\"samplingInterval\":8,\"queueSize\":4}" + } + } + }, + { + "$id": "2523", + "kind": "model", + "type": { + "$ref": "446" + }, + "value": { + "$id": "2524", + "name": { + "$id": "2525", + "kind": "string", + "type": { + "$ref": "449" + }, + "value": "dataPoint2" + }, + "dataSource": { + "$id": "2526", + "kind": "string", + "type": { + "$ref": "453" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt2" + }, + "observabilityMode": { + "$id": "2527", + "kind": "string", + "type": { + "$ref": "46" + }, + "value": "None" + }, + "dataPointConfiguration": { + "$id": "2528", + "kind": "string", + "type": { + "$ref": "457" + }, + "value": "{\"publishingInterval\":4,\"samplingInterval\":4,\"queueSize\":7}" + } + } + } + ] + } + } + } + ] + }, + "events": { + "$id": "2529", + "kind": "array", + "type": { + "$ref": "468" + }, + "value": [ + { + "$id": "2530", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "2531", + "name": { + "$id": "2532", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event1" + }, + "eventNotifier": { + "$id": "2533", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt3" + }, + "observabilityMode": { + "$id": "2534", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "None" + }, + "eventConfiguration": { + "$id": "2535", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":1,\"queueSize\":8}" + }, + "topic": { + "$id": "2536", + "kind": "model", + "type": { + "$ref": "420" + }, + "value": { + "$id": "2537", + "path": { + "$id": "2538", + "kind": "string", + "type": { + "$ref": "422" + }, + "value": "/path/event1" + }, + "retain": { + "$id": "2539", + "kind": "string", + "type": { + "$ref": "40" + }, + "value": "Keep" + } + } + } + } + }, + { + "$id": "2540", + "kind": "model", + "type": { + "$ref": "469" + }, + "value": { + "$id": "2541", + "name": { + "$id": "2542", + "kind": "string", + "type": { + "$ref": "472" + }, + "value": "event2" + }, + "eventNotifier": { + "$id": "2543", + "kind": "string", + "type": { + "$ref": "476" + }, + "value": "nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt4" + }, + "observabilityMode": { + "$id": "2544", + "kind": "string", + "type": { + "$ref": "58" + }, + "value": "Log" + }, + "eventConfiguration": { + "$id": "2545", + "kind": "string", + "type": { + "$ref": "480" + }, + "value": "{\"publishingInterval\":7,\"samplingInterval\":8,\"queueSize\":4}" + } + } + } + ] + }, + "provisioningState": { + "$id": "2546", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + ] + } + } + } + } + ] + } + ] + } + ], + "parent": "DeviceRegistryClient", + "parameters": [ + { + "$id": "2547", + "name": "endpoint", + "nameInRequest": "endpoint", + "doc": "Service host", + "type": { + "$id": "2548", + "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": "2549", + "type": { + "$id": "2550", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "https://management.azure.com" + } + } + ], + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.Assets" + }, + { + "$id": "2551", + "name": "AssetEndpointProfiles", + "namespace": "Microsoft.DeviceRegistry", + "operations": [ + { + "$id": "2552", + "name": "get", + "resourceName": "AssetEndpointProfile", + "doc": "Get a AssetEndpointProfile", + "accessibility": "public", + "parameters": [ + { + "$id": "2553", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "2554", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "2555", + "type": { + "$id": "2556", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-11-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2557", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "2558", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "2559", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2560", + "name": "resourceGroupName", + "nameInRequest": "resourceGroupName", + "doc": "The name of the resource group. The name is case insensitive.", + "type": { + "$id": "2561", + "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": "2562", + "name": "assetEndpointProfileName", + "nameInRequest": "assetEndpointProfileName", + "doc": "Asset Endpoint Profile name parameter.", + "type": { + "$id": "2563", + "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": "2564", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "2565", + "kind": "constant", + "valueType": { + "$id": "2566", + "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": "2567", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "181" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "GET", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceRegistry/assetEndpointProfiles/{assetEndpointProfileName}", + "bufferResponse": true, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfiles.get", + "decorators": [], + "examples": [ + { + "$id": "2568", + "kind": "http", + "name": "Get_AssetEndpointProfile", + "description": "Get_AssetEndpointProfile", + "filePath": "2024-11-01/Get_AssetEndpointProfile.json", + "parameters": [ + { + "$id": "2569", + "parameter": { + "$ref": "2553" + }, + "value": { + "$id": "2570", + "kind": "string", + "type": { + "$ref": "2554" + }, + "value": "2024-11-01" + } + }, + { + "$id": "2571", + "parameter": { + "$ref": "2557" + }, + "value": { + "$id": "2572", + "kind": "string", + "type": { + "$ref": "2558" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + }, + { + "$id": "2573", + "parameter": { + "$ref": "2560" + }, + "value": { + "$id": "2574", + "kind": "string", + "type": { + "$ref": "2561" + }, + "value": "myResourceGroup" + } + }, + { + "$id": "2575", + "parameter": { + "$ref": "2562" + }, + "value": { + "$id": "2576", + "kind": "string", + "type": { + "$ref": "2563" + }, + "value": "my-assetendpointprofile" + } + } + ], + "responses": [ + { + "$id": "2577", + "response": { + "$ref": "2567" + }, + "statusCode": 200, + "bodyValue": { + "$id": "2578", + "kind": "model", + "type": { + "$ref": "181" + }, + "value": { + "$id": "2579", + "id": { + "$id": "2580", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assetEndpointProfiles/my-assetendpointprofile" + }, + "name": { + "$id": "2581", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-assetendpointprofile" + }, + "type": { + "$id": "2582", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assetEndpointProfiles" + }, + "location": { + "$id": "2583", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "2584", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "2585", + "type": { + "$id": "2586", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "2587", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "2588", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "2589", + "site": { + "$id": "2590", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "2591", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "2592", + "createdBy": { + "$id": "2593", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "2594", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "2595", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "2596", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "2597", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "2598", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "2599", + "kind": "model", + "type": { + "$ref": "194" + }, + "value": { + "$id": "2600", + "uuid": { + "$id": "2601", + "kind": "string", + "type": { + "$ref": "196" + }, + "value": "1824a74f-21e1-4458-ae07-604d3a241d2e" + }, + "targetAddress": { + "$id": "2602", + "kind": "string", + "type": { + "$ref": "200" + }, + "value": "https://www.example.com/myTargetAddress" + }, + "endpointProfileType": { + "$id": "2603", + "kind": "string", + "type": { + "$ref": "204" + }, + "value": "myEndpointProfileType" + }, + "authentication": { + "$id": "2604", + "kind": "model", + "type": { + "$ref": "208" + }, + "value": { + "$id": "2605", + "method": { + "$id": "2606", + "kind": "string", + "type": { + "$ref": "24" + }, + "value": "UsernamePassword" + }, + "usernamePasswordCredentials": { + "$id": "2607", + "kind": "model", + "type": { + "$ref": "213" + }, + "value": { + "$id": "2608", + "usernameSecretName": { + "$id": "2609", + "kind": "string", + "type": { + "$ref": "215" + }, + "value": "usernameRef" + }, + "passwordSecretName": { + "$id": "2610", + "kind": "string", + "type": { + "$ref": "219" + }, + "value": "passwordRef" + } + } + } + } + }, + "provisioningState": { + "$id": "2611", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + } + ] + }, + { + "$id": "2612", + "kind": "http", + "name": "Get_AssetEndpointProfile_With_SyncStatus", + "description": "Get_AssetEndpointProfile_With_SyncStatus", + "filePath": "2024-11-01/Get_AssetEndpointProfile_With_SyncStatus.json", + "parameters": [ + { + "$id": "2613", + "parameter": { + "$ref": "2553" + }, + "value": { + "$id": "2614", + "kind": "string", + "type": { + "$ref": "2554" + }, + "value": "2024-11-01" + } + }, + { + "$id": "2615", + "parameter": { + "$ref": "2557" + }, + "value": { + "$id": "2616", + "kind": "string", + "type": { + "$ref": "2558" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + }, + { + "$id": "2617", + "parameter": { + "$ref": "2560" + }, + "value": { + "$id": "2618", + "kind": "string", + "type": { + "$ref": "2561" + }, + "value": "myResourceGroup" + } + }, + { + "$id": "2619", + "parameter": { + "$ref": "2562" + }, + "value": { + "$id": "2620", + "kind": "string", + "type": { + "$ref": "2563" + }, + "value": "my-assetendpointprofile" + } + } + ], + "responses": [ + { + "$id": "2621", + "response": { + "$ref": "2567" + }, + "statusCode": 200, + "bodyValue": { + "$id": "2622", + "kind": "model", + "type": { + "$ref": "181" + }, + "value": { + "$id": "2623", + "id": { + "$id": "2624", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assetEndpointProfiles/my-assetendpointprofile" + }, + "name": { + "$id": "2625", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-assetendpointprofile" + }, + "type": { + "$id": "2626", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assetEndpointProfiles" + }, + "location": { + "$id": "2627", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "2628", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "2629", + "type": { + "$id": "2630", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "2631", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "2632", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "2633", + "site": { + "$id": "2634", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "2635", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "2636", + "createdBy": { + "$id": "2637", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "2638", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "2639", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "2640", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "2641", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "2642", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "2643", + "kind": "model", + "type": { + "$ref": "194" + }, + "value": { + "$id": "2644", + "uuid": { + "$id": "2645", + "kind": "string", + "type": { + "$ref": "196" + }, + "value": "1824a74f-21e1-4458-ae07-604d3a241d2e" + }, + "targetAddress": { + "$id": "2646", + "kind": "string", + "type": { + "$ref": "200" + }, + "value": "https://www.example.com/myTargetAddress" + }, + "endpointProfileType": { + "$id": "2647", + "kind": "string", + "type": { + "$ref": "204" + }, + "value": "myEndpointProfileType" + }, + "authentication": { + "$id": "2648", + "kind": "model", + "type": { + "$ref": "208" + }, + "value": { + "$id": "2649", + "method": { + "$id": "2650", + "kind": "string", + "type": { + "$ref": "24" + }, + "value": "UsernamePassword" + }, + "usernamePasswordCredentials": { + "$id": "2651", + "kind": "model", + "type": { + "$ref": "213" + }, + "value": { + "$id": "2652", + "usernameSecretName": { + "$id": "2653", + "kind": "string", + "type": { + "$ref": "215" + }, + "value": "usernameRef" + }, + "passwordSecretName": { + "$id": "2654", + "kind": "string", + "type": { + "$ref": "219" + }, + "value": "passwordRef" + } + } + } + } + }, + "status": { + "$id": "2655", + "kind": "model", + "type": { + "$ref": "243" + }, + "value": { + "$id": "2656", + "errors": { + "$id": "2657", + "kind": "array", + "type": { + "$ref": "245" + }, + "value": [ + { + "$id": "2658", + "kind": "model", + "type": { + "$ref": "246" + }, + "value": { + "$id": "2659", + "code": { + "$id": "2660", + "kind": "number", + "type": { + "$ref": "248" + }, + "value": 500 + }, + "message": { + "$id": "2661", + "kind": "string", + "type": { + "$ref": "252" + }, + "value": "Internal Server Error" + } + } + } + ] + } + } + }, + "provisioningState": { + "$id": "2662", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + } + ] + } + ] + }, + { + "$id": "2663", + "name": "createOrReplace", + "resourceName": "AssetEndpointProfile", + "doc": "Create a AssetEndpointProfile", + "accessibility": "public", + "parameters": [ + { + "$id": "2664", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "2665", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "2666", + "type": { + "$id": "2667", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-11-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2668", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "2669", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "2670", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2671", + "name": "resourceGroupName", + "nameInRequest": "resourceGroupName", + "doc": "The name of the resource group. The name is case insensitive.", + "type": { + "$id": "2672", + "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": "2673", + "name": "assetEndpointProfileName", + "nameInRequest": "assetEndpointProfileName", + "doc": "Asset Endpoint Profile name parameter.", + "type": { + "$id": "2674", + "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": "2675", + "name": "contentType", + "nameInRequest": "Content-Type", + "doc": "Body parameter's content type. Known values are application/json", + "type": { + "$id": "2676", + "kind": "constant", + "valueType": { + "$id": "2677", + "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": "2678", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "2679", + "kind": "constant", + "valueType": { + "$id": "2680", + "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": "2681", + "name": "resource", + "nameInRequest": "resource", + "doc": "Resource create parameters.", + "type": { + "$ref": "181" + }, + "location": "Body", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "2682", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "181" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + }, + { + "$id": "2683", + "statusCodes": [ + 201 + ], + "bodyType": { + "$ref": "181" + }, + "headers": [ + { + "$id": "2684", + "name": "azureAsyncOperation", + "nameInResponse": "Azure-AsyncOperation", + "doc": "A link to the status monitor", + "type": { + "$id": "2685", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + } + }, + { + "$id": "2686", + "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": "2687", + "kind": "int32", + "name": "int32", + "crossLanguageDefinitionId": "TypeSpec.int32", + "decorators": [] + } + } + ], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "PUT", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceRegistry/assetEndpointProfiles/{assetEndpointProfileName}", + "requestMediaTypes": [ + "application/json" + ], + "bufferResponse": true, + "longRunning": { + "$id": "2688", + "finalStateVia": 0, + "finalResponse": { + "$id": "2689", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "181" + } + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfiles.createOrReplace", + "decorators": [], + "examples": [ + { + "$id": "2690", + "kind": "http", + "name": "Create_AssetEndpointProfile", + "description": "Create_AssetEndpointProfile", + "filePath": "2024-11-01/Create_AssetEndpointProfile.json", + "parameters": [ + { + "$id": "2691", + "parameter": { + "$ref": "2664" + }, + "value": { + "$id": "2692", + "kind": "string", + "type": { + "$ref": "2665" + }, + "value": "2024-11-01" + } + }, + { + "$id": "2693", + "parameter": { + "$ref": "2668" + }, + "value": { + "$id": "2694", + "kind": "string", + "type": { + "$ref": "2669" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + }, + { + "$id": "2695", + "parameter": { + "$ref": "2671" + }, + "value": { + "$id": "2696", + "kind": "string", + "type": { + "$ref": "2672" + }, + "value": "myResourceGroup" + } + }, + { + "$id": "2697", + "parameter": { + "$ref": "2673" + }, + "value": { + "$id": "2698", + "kind": "string", + "type": { + "$ref": "2674" + }, + "value": "my-assetendpointprofile" + } + }, + { + "$id": "2699", + "parameter": { + "$ref": "2681" + }, + "value": { + "$id": "2700", + "kind": "model", + "type": { + "$ref": "181" + }, + "value": { + "$id": "2701", + "location": { + "$id": "2702", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "2703", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "2704", + "type": { + "$id": "2705", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "2706", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "2707", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "2708", + "site": { + "$id": "2709", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "properties": { + "$id": "2710", + "kind": "model", + "type": { + "$ref": "194" + }, + "value": { + "$id": "2711", + "targetAddress": { + "$id": "2712", + "kind": "string", + "type": { + "$ref": "200" + }, + "value": "https://www.example.com/myTargetAddress" + }, + "endpointProfileType": { + "$id": "2713", + "kind": "string", + "type": { + "$ref": "204" + }, + "value": "myEndpointProfileType" + }, + "authentication": { + "$id": "2714", + "kind": "model", + "type": { + "$ref": "208" + }, + "value": { + "$id": "2715", + "method": { + "$id": "2716", + "kind": "string", + "type": { + "$ref": "24" + }, + "value": "Anonymous" + } + } + } + } + } + } + } + } + ], + "responses": [ + { + "$id": "2717", + "response": { + "$ref": "2682" + }, + "statusCode": 200, + "bodyValue": { + "$id": "2718", + "kind": "model", + "type": { + "$ref": "181" + }, + "value": { + "$id": "2719", + "id": { + "$id": "2720", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assetEndpointProfiles/my-assetendpointprofile" + }, + "name": { + "$id": "2721", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-assetendpointprofile" + }, + "type": { + "$id": "2722", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assetEndpointProfiles" + }, + "location": { + "$id": "2723", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "2724", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "2725", + "type": { + "$id": "2726", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "2727", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "2728", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "2729", + "site": { + "$id": "2730", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "2731", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "2732", + "createdBy": { + "$id": "2733", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "2734", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "2735", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "2736", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "2737", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "2738", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "2739", + "kind": "model", + "type": { + "$ref": "194" + }, + "value": { + "$id": "2740", + "uuid": { + "$id": "2741", + "kind": "string", + "type": { + "$ref": "196" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "targetAddress": { + "$id": "2742", + "kind": "string", + "type": { + "$ref": "200" + }, + "value": "https://www.example.com/myTargetAddress" + }, + "endpointProfileType": { + "$id": "2743", + "kind": "string", + "type": { + "$ref": "204" + }, + "value": "myEndpointProfileType" + }, + "authentication": { + "$id": "2744", + "kind": "model", + "type": { + "$ref": "208" + }, + "value": { + "$id": "2745", + "method": { + "$id": "2746", + "kind": "string", + "type": { + "$ref": "24" + }, + "value": "Anonymous" + } + } + }, + "provisioningState": { + "$id": "2747", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + }, + { + "$id": "2748", + "response": { + "$ref": "2683" + }, + "statusCode": 201, + "bodyValue": { + "$id": "2749", + "kind": "model", + "type": { + "$ref": "181" + }, + "value": { + "$id": "2750", + "id": { + "$id": "2751", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assetEndpointProfiles/my-assetendpointprofile" + }, + "name": { + "$id": "2752", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-assetendpointprofile" + }, + "type": { + "$id": "2753", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assetEndpointProfiles" + }, + "location": { + "$id": "2754", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "2755", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "2756", + "type": { + "$id": "2757", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "2758", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "2759", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "2760", + "site": { + "$id": "2761", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "2762", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "2763", + "createdBy": { + "$id": "2764", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "2765", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "2766", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "2767", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "2768", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "2769", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "2770", + "kind": "model", + "type": { + "$ref": "194" + }, + "value": { + "$id": "2771", + "uuid": { + "$id": "2772", + "kind": "string", + "type": { + "$ref": "196" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "targetAddress": { + "$id": "2773", + "kind": "string", + "type": { + "$ref": "200" + }, + "value": "https://www.example.com/myTargetAddress" + }, + "endpointProfileType": { + "$id": "2774", + "kind": "string", + "type": { + "$ref": "204" + }, + "value": "myEndpointProfileType" + }, + "authentication": { + "$id": "2775", + "kind": "model", + "type": { + "$ref": "208" + }, + "value": { + "$id": "2776", + "method": { + "$id": "2777", + "kind": "string", + "type": { + "$ref": "24" + }, + "value": "Anonymous" + } + } + }, + "provisioningState": { + "$id": "2778", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Accepted" + } + } + } + } + } + } + ] + }, + { + "$id": "2779", + "kind": "http", + "name": "Create_AssetEndpointProfile_With_DiscoveredAepRef", + "description": "Create_AssetEndpointProfile_With_DiscoveredAepRef", + "filePath": "2024-11-01/Create_AssetEndpointProfile_With_DiscoveredAepRef.json", + "parameters": [ + { + "$id": "2780", + "parameter": { + "$ref": "2664" + }, + "value": { + "$id": "2781", + "kind": "string", + "type": { + "$ref": "2665" + }, + "value": "2024-11-01" + } + }, + { + "$id": "2782", + "parameter": { + "$ref": "2668" + }, + "value": { + "$id": "2783", + "kind": "string", + "type": { + "$ref": "2669" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + }, + { + "$id": "2784", + "parameter": { + "$ref": "2671" + }, + "value": { + "$id": "2785", + "kind": "string", + "type": { + "$ref": "2672" + }, + "value": "myResourceGroup" + } + }, + { + "$id": "2786", + "parameter": { + "$ref": "2673" + }, + "value": { + "$id": "2787", + "kind": "string", + "type": { + "$ref": "2674" + }, + "value": "my-assetendpointprofile" + } + }, + { + "$id": "2788", + "parameter": { + "$ref": "2681" + }, + "value": { + "$id": "2789", + "kind": "model", + "type": { + "$ref": "181" + }, + "value": { + "$id": "2790", + "location": { + "$id": "2791", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "2792", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "2793", + "type": { + "$id": "2794", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "2795", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "2796", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "2797", + "site": { + "$id": "2798", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "properties": { + "$id": "2799", + "kind": "model", + "type": { + "$ref": "194" + }, + "value": { + "$id": "2800", + "targetAddress": { + "$id": "2801", + "kind": "string", + "type": { + "$ref": "200" + }, + "value": "https://www.example.com/myTargetAddress" + }, + "endpointProfileType": { + "$id": "2802", + "kind": "string", + "type": { + "$ref": "204" + }, + "value": "myEndpointProfileType" + }, + "discoveredAssetEndpointProfileRef": { + "$id": "2803", + "kind": "string", + "type": { + "$ref": "239" + }, + "value": "discoveredAssetEndpointProfile1" + }, + "authentication": { + "$id": "2804", + "kind": "model", + "type": { + "$ref": "208" + }, + "value": { + "$id": "2805", + "method": { + "$id": "2806", + "kind": "string", + "type": { + "$ref": "24" + }, + "value": "Anonymous" + } + } + } + } + } + } + } + } + ], + "responses": [ + { + "$id": "2807", + "response": { + "$ref": "2682" + }, + "statusCode": 200, + "bodyValue": { + "$id": "2808", + "kind": "model", + "type": { + "$ref": "181" + }, + "value": { + "$id": "2809", + "id": { + "$id": "2810", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assetEndpointProfiles/my-assetendpointprofile" + }, + "name": { + "$id": "2811", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-assetendpointprofile" + }, + "type": { + "$id": "2812", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assetEndpointProfiles" + }, + "location": { + "$id": "2813", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "2814", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "2815", + "type": { + "$id": "2816", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "2817", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "2818", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "2819", + "site": { + "$id": "2820", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "2821", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "2822", + "createdBy": { + "$id": "2823", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "2824", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "2825", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "2826", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "2827", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "2828", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "2829", + "kind": "model", + "type": { + "$ref": "194" + }, + "value": { + "$id": "2830", + "uuid": { + "$id": "2831", + "kind": "string", + "type": { + "$ref": "196" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "targetAddress": { + "$id": "2832", + "kind": "string", + "type": { + "$ref": "200" + }, + "value": "https://www.example.com/myTargetAddress" + }, + "endpointProfileType": { + "$id": "2833", + "kind": "string", + "type": { + "$ref": "204" + }, + "value": "myEndpointProfileType" + }, + "discoveredAssetEndpointProfileRef": { + "$id": "2834", + "kind": "string", + "type": { + "$ref": "239" + }, + "value": "discoveredAssetEndpointProfile1" + }, + "authentication": { + "$id": "2835", + "kind": "model", + "type": { + "$ref": "208" + }, + "value": { + "$id": "2836", + "method": { + "$id": "2837", + "kind": "string", + "type": { + "$ref": "24" + }, + "value": "Anonymous" + } + } + }, + "provisioningState": { + "$id": "2838", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + }, + { + "$id": "2839", + "response": { + "$ref": "2683" + }, + "statusCode": 201, + "bodyValue": { + "$id": "2840", + "kind": "model", + "type": { + "$ref": "181" + }, + "value": { + "$id": "2841", + "id": { + "$id": "2842", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assetEndpointProfiles/my-assetendpointprofile" + }, + "name": { + "$id": "2843", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-assetendpointprofile" + }, + "type": { + "$id": "2844", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assetEndpointProfiles" + }, + "location": { + "$id": "2845", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "2846", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "2847", + "type": { + "$id": "2848", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "2849", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "2850", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "2851", + "site": { + "$id": "2852", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "2853", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "2854", + "createdBy": { + "$id": "2855", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "2856", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "2857", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "2858", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "2859", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "2860", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "2861", + "kind": "model", + "type": { + "$ref": "194" + }, + "value": { + "$id": "2862", + "uuid": { + "$id": "2863", + "kind": "string", + "type": { + "$ref": "196" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "targetAddress": { + "$id": "2864", + "kind": "string", + "type": { + "$ref": "200" + }, + "value": "https://www.example.com/myTargetAddress" + }, + "endpointProfileType": { + "$id": "2865", + "kind": "string", + "type": { + "$ref": "204" + }, + "value": "myEndpointProfileType" + }, + "discoveredAssetEndpointProfileRef": { + "$id": "2866", + "kind": "string", + "type": { + "$ref": "239" + }, + "value": "discoveredAssetEndpointProfile1" + }, + "authentication": { + "$id": "2867", + "kind": "model", + "type": { + "$ref": "208" + }, + "value": { + "$id": "2868", + "method": { + "$id": "2869", + "kind": "string", + "type": { + "$ref": "24" + }, + "value": "Anonymous" + } + } + }, + "provisioningState": { + "$id": "2870", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Accepted" + } + } + } + } + } + } + ] + } + ] + }, + { + "$id": "2871", + "name": "update", + "resourceName": "AssetEndpointProfile", + "doc": "Update a AssetEndpointProfile", + "accessibility": "public", + "parameters": [ + { + "$id": "2872", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "2873", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "2874", + "type": { + "$id": "2875", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-11-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2876", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "2877", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "2878", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2879", + "name": "resourceGroupName", + "nameInRequest": "resourceGroupName", + "doc": "The name of the resource group. The name is case insensitive.", + "type": { + "$id": "2880", + "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": "2881", + "name": "assetEndpointProfileName", + "nameInRequest": "assetEndpointProfileName", + "doc": "Asset Endpoint Profile name parameter.", + "type": { + "$id": "2882", + "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": "2883", + "name": "contentType", + "nameInRequest": "Content-Type", + "doc": "Body parameter's content type. Known values are application/json", + "type": { + "$id": "2884", + "kind": "constant", + "valueType": { + "$id": "2885", + "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": "2886", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "2887", + "kind": "constant", + "valueType": { + "$id": "2888", + "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": "2889", + "name": "properties", + "nameInRequest": "properties", + "doc": "The resource properties to be updated.", + "type": { + "$ref": "301" + }, + "location": "Body", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Method", + "decorators": [], + "skipUrlEncoding": false + } + ], + "responses": [ + { + "$id": "2890", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "181" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + }, + { + "$id": "2891", + "statusCodes": [ + 202 + ], + "headers": [ + { + "$id": "2892", + "name": "location", + "nameInResponse": "Location", + "doc": "The Location header contains the URL where the status of the long running operation can be checked.", + "type": { + "$id": "2893", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + } + }, + { + "$id": "2894", + "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": "2895", + "kind": "int32", + "name": "int32", + "crossLanguageDefinitionId": "TypeSpec.int32", + "decorators": [] + } + } + ], + "isErrorResponse": false + } + ], + "httpMethod": "PATCH", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceRegistry/assetEndpointProfiles/{assetEndpointProfileName}", + "requestMediaTypes": [ + "application/json" + ], + "bufferResponse": true, + "longRunning": { + "$id": "2896", + "finalStateVia": 1, + "finalResponse": { + "$id": "2897", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "181" + } + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": false, + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfiles.update", + "decorators": [], + "examples": [ + { + "$id": "2898", + "kind": "http", + "name": "Update_AssetEndpointProfile", + "description": "Update_AssetEndpointProfile", + "filePath": "2024-11-01/Update_AssetEndpointProfile.json", + "parameters": [ + { + "$id": "2899", + "parameter": { + "$ref": "2872" + }, + "value": { + "$id": "2900", + "kind": "string", + "type": { + "$ref": "2873" + }, + "value": "2024-11-01" + } + }, + { + "$id": "2901", + "parameter": { + "$ref": "2876" + }, + "value": { + "$id": "2902", + "kind": "string", + "type": { + "$ref": "2877" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + }, + { + "$id": "2903", + "parameter": { + "$ref": "2879" + }, + "value": { + "$id": "2904", + "kind": "string", + "type": { + "$ref": "2880" + }, + "value": "myResourceGroup" + } + }, + { + "$id": "2905", + "parameter": { + "$ref": "2881" + }, + "value": { + "$id": "2906", + "kind": "string", + "type": { + "$ref": "2882" + }, + "value": "my-assetendpointprofile" + } + }, + { + "$id": "2907", + "parameter": { + "$ref": "2889" + }, + "value": { + "$id": "2908", + "kind": "model", + "type": { + "$ref": "301" + }, + "value": { + "$id": "2909", + "properties": { + "$id": "2910", + "kind": "model", + "type": { + "$ref": "309" + }, + "value": { + "$id": "2911", + "targetAddress": { + "$id": "2912", + "kind": "string", + "type": { + "$ref": "311" + }, + "value": "https://www.example.com/myTargetAddress" + } + } + } + } + } + } + ], + "responses": [ + { + "$id": "2913", + "response": { + "$ref": "2890" + }, + "statusCode": 200, + "bodyValue": { + "$id": "2914", + "kind": "model", + "type": { + "$ref": "181" + }, + "value": { + "$id": "2915", + "id": { + "$id": "2916", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assetEndpointProfiles/my-assetendpointprofile" + }, + "name": { + "$id": "2917", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-assetendpointprofile" + }, + "type": { + "$id": "2918", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assetEndpointProfiles" + }, + "location": { + "$id": "2919", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "2920", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "2921", + "type": { + "$id": "2922", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "2923", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "2924", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "2925", + "site": { + "$id": "2926", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "2927", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "2928", + "createdBy": { + "$id": "2929", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "2930", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "2931", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "2932", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "2933", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "2934", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "2935", + "kind": "model", + "type": { + "$ref": "194" + }, + "value": { + "$id": "2936", + "uuid": { + "$id": "2937", + "kind": "string", + "type": { + "$ref": "196" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "targetAddress": { + "$id": "2938", + "kind": "string", + "type": { + "$ref": "200" + }, + "value": "https://www.example.com/myTargetAddress" + }, + "endpointProfileType": { + "$id": "2939", + "kind": "string", + "type": { + "$ref": "204" + }, + "value": "myEndpointProfileType" + }, + "authentication": { + "$id": "2940", + "kind": "model", + "type": { + "$ref": "208" + }, + "value": { + "$id": "2941", + "method": { + "$id": "2942", + "kind": "string", + "type": { + "$ref": "24" + }, + "value": "Anonymous" + } + } + }, + "provisioningState": { + "$id": "2943", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + }, + { + "$id": "2944", + "response": { + "$ref": "2891" + }, + "statusCode": 202 + } + ] + } + ] + }, + { + "$id": "2945", + "name": "delete", + "resourceName": "AssetEndpointProfile", + "doc": "Delete a AssetEndpointProfile", + "accessibility": "public", + "parameters": [ + { + "$id": "2946", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "2947", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "2948", + "type": { + "$id": "2949", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-11-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2950", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "2951", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "2952", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2953", + "name": "resourceGroupName", + "nameInRequest": "resourceGroupName", + "doc": "The name of the resource group. The name is case insensitive.", + "type": { + "$id": "2954", + "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": "2955", + "name": "assetEndpointProfileName", + "nameInRequest": "assetEndpointProfileName", + "doc": "Asset Endpoint Profile name parameter.", + "type": { + "$id": "2956", + "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": "2957", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "2958", + "kind": "constant", + "valueType": { + "$id": "2959", + "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": "2960", + "statusCodes": [ + 202 + ], + "headers": [ + { + "$id": "2961", + "name": "location", + "nameInResponse": "Location", + "doc": "The Location header contains the URL where the status of the long running operation can be checked.", + "type": { + "$id": "2962", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + } + }, + { + "$id": "2963", + "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": "2964", + "kind": "int32", + "name": "int32", + "crossLanguageDefinitionId": "TypeSpec.int32", + "decorators": [] + } + } + ], + "isErrorResponse": false + }, + { + "$id": "2965", + "statusCodes": [ + 204 + ], + "headers": [], + "isErrorResponse": false + } + ], + "httpMethod": "DELETE", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceRegistry/assetEndpointProfiles/{assetEndpointProfileName}", + "bufferResponse": true, + "longRunning": { + "$id": "2966", + "finalStateVia": 1, + "finalResponse": { + "$id": "2967", + "statusCodes": [ + 204 + ] + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfiles.delete", + "decorators": [], + "examples": [ + { + "$id": "2968", + "kind": "http", + "name": "Delete_AssetEndpointProfile", + "description": "Delete_AssetEndpointProfile", + "filePath": "2024-11-01/Delete_AssetEndpointProfile.json", + "parameters": [ + { + "$id": "2969", + "parameter": { + "$ref": "2946" + }, + "value": { + "$id": "2970", + "kind": "string", + "type": { + "$ref": "2947" + }, + "value": "2024-11-01" + } + }, + { + "$id": "2971", + "parameter": { + "$ref": "2950" + }, + "value": { + "$id": "2972", + "kind": "string", + "type": { + "$ref": "2951" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + }, + { + "$id": "2973", + "parameter": { + "$ref": "2953" + }, + "value": { + "$id": "2974", + "kind": "string", + "type": { + "$ref": "2954" + }, + "value": "myResourceGroup" + } + }, + { + "$id": "2975", + "parameter": { + "$ref": "2955" + }, + "value": { + "$id": "2976", + "kind": "string", + "type": { + "$ref": "2956" + }, + "value": "my-assetendpointprofile" + } + } + ], + "responses": [ + { + "$id": "2977", + "response": { + "$ref": "2960" + }, + "statusCode": 202 + }, + { + "$id": "2978", + "response": { + "$ref": "2965" + }, + "statusCode": 204 + } + ] + } + ] + }, + { + "$id": "2979", + "name": "listByResourceGroup", + "resourceName": "AssetEndpointProfile", + "doc": "List AssetEndpointProfile resources by resource group", + "accessibility": "public", + "parameters": [ + { + "$id": "2980", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "2981", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "2982", + "type": { + "$id": "2983", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-11-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2984", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "2985", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "2986", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "2987", + "name": "resourceGroupName", + "nameInRequest": "resourceGroupName", + "doc": "The name of the resource group. The name is case insensitive.", + "type": { + "$id": "2988", + "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": "2989", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "2990", + "kind": "constant", + "valueType": { + "$id": "2991", + "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": "2992", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "327" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "GET", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceRegistry/assetEndpointProfiles", + "bufferResponse": true, + "paging": { + "$id": "2993", + "itemPropertySegments": [ + "value" + ], + "nextLink": { + "$id": "2994", + "responseSegments": [ + "nextLink" + ], + "responseLocation": "Body" + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfiles.listByResourceGroup", + "decorators": [], + "examples": [ + { + "$id": "2995", + "kind": "http", + "name": "List_AssetEndpointProfiles_ResourceGroup", + "description": "List_AssetEndpointProfiles_ResourceGroup", + "filePath": "2024-11-01/List_AssetEndpointProfiles_ResourceGroup.json", + "parameters": [ + { + "$id": "2996", + "parameter": { + "$ref": "2980" + }, + "value": { + "$id": "2997", + "kind": "string", + "type": { + "$ref": "2981" + }, + "value": "2024-11-01" + } + }, + { + "$id": "2998", + "parameter": { + "$ref": "2984" + }, + "value": { + "$id": "2999", + "kind": "string", + "type": { + "$ref": "2985" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + }, + { + "$id": "3000", + "parameter": { + "$ref": "2987" + }, + "value": { + "$id": "3001", + "kind": "string", + "type": { + "$ref": "2988" + }, + "value": "myResourceGroup" + } + } + ], + "responses": [ + { + "$id": "3002", + "response": { + "$ref": "2992" + }, + "statusCode": 200, + "bodyValue": { + "$id": "3003", + "kind": "model", + "type": { + "$ref": "327" + }, + "value": { + "$id": "3004", + "value": { + "$id": "3005", + "kind": "array", + "type": { + "$ref": "329" + }, + "value": [ + { + "$id": "3006", + "kind": "model", + "type": { + "$ref": "181" + }, + "value": { + "$id": "3007", + "id": { + "$id": "3008", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assetEndpointProfiles/my-assetendpointprofile" + }, + "name": { + "$id": "3009", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-assetendpointprofile" + }, + "type": { + "$id": "3010", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assetEndpointProfiles" + }, + "location": { + "$id": "3011", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "3012", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "3013", + "type": { + "$id": "3014", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "3015", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "3016", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "3017", + "site": { + "$id": "3018", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "3019", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "3020", + "createdBy": { + "$id": "3021", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "3022", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "3023", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "3024", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "3025", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "3026", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "3027", + "kind": "model", + "type": { + "$ref": "194" + }, + "value": { + "$id": "3028", + "uuid": { + "$id": "3029", + "kind": "string", + "type": { + "$ref": "196" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "targetAddress": { + "$id": "3030", + "kind": "string", + "type": { + "$ref": "200" + }, + "value": "https://www.example.com/myTargetAddress" + }, + "endpointProfileType": { + "$id": "3031", + "kind": "string", + "type": { + "$ref": "204" + }, + "value": "myEndpointProfileType" + }, + "authentication": { + "$id": "3032", + "kind": "model", + "type": { + "$ref": "208" + }, + "value": { + "$id": "3033", + "method": { + "$id": "3034", + "kind": "string", + "type": { + "$ref": "24" + }, + "value": "Anonymous" + } + } + }, + "provisioningState": { + "$id": "3035", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + }, + { + "$id": "3036", + "kind": "model", + "type": { + "$ref": "181" + }, + "value": { + "$id": "3037", + "id": { + "$id": "3038", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assetEndpointProfiles/my-assetendpointprofile1" + }, + "name": { + "$id": "3039", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-assetendpointprofile1" + }, + "type": { + "$id": "3040", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assetEndpointProfiles" + }, + "location": { + "$id": "3041", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "3042", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "3043", + "type": { + "$id": "3044", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "3045", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "3046", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "3047", + "site": { + "$id": "3048", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-2" + } + } + }, + "systemData": { + "$id": "3049", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "3050", + "createdBy": { + "$id": "3051", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "3052", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "3053", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "3054", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "3055", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "3056", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "3057", + "kind": "model", + "type": { + "$ref": "194" + }, + "value": { + "$id": "3058", + "uuid": { + "$id": "3059", + "kind": "string", + "type": { + "$ref": "196" + }, + "value": "7824a74f-21e1-4458-ae06-604d3a241d2c" + }, + "targetAddress": { + "$id": "3060", + "kind": "string", + "type": { + "$ref": "200" + }, + "value": "https://www.example.com/myTargetAddress1" + }, + "endpointProfileType": { + "$id": "3061", + "kind": "string", + "type": { + "$ref": "204" + }, + "value": "myEndpointProfileType" + }, + "authentication": { + "$id": "3062", + "kind": "model", + "type": { + "$ref": "208" + }, + "value": { + "$id": "3063", + "method": { + "$id": "3064", + "kind": "string", + "type": { + "$ref": "24" + }, + "value": "Certificate" + }, + "x509Credentials": { + "$id": "3065", + "kind": "model", + "type": { + "$ref": "225" + }, + "value": { + "$id": "3066", + "certificateSecretName": { + "$id": "3067", + "kind": "string", + "type": { + "$ref": "227" + }, + "value": "certificatRef" + } + } + } + } + }, + "provisioningState": { + "$id": "3068", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + }, + { + "$id": "3069", + "kind": "model", + "type": { + "$ref": "181" + }, + "value": { + "$id": "3070", + "id": { + "$id": "3071", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assetEndpointProfiles/my-assetendpointprofile2" + }, + "name": { + "$id": "3072", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-assetendpointprofile2" + }, + "type": { + "$id": "3073", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assetEndpointProfiles" + }, + "location": { + "$id": "3074", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "3075", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "3076", + "type": { + "$id": "3077", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "3078", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "3079", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "3080", + "site": { + "$id": "3081", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-2" + } + } + }, + "systemData": { + "$id": "3082", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "3083", + "createdBy": { + "$id": "3084", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "3085", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "3086", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "3087", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "3088", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "3089", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "3090", + "kind": "model", + "type": { + "$ref": "194" + }, + "value": { + "$id": "3091", + "uuid": { + "$id": "3092", + "kind": "string", + "type": { + "$ref": "196" + }, + "value": "1824a74f-21e1-4458-ae07-604d3a241d2e" + }, + "targetAddress": { + "$id": "3093", + "kind": "string", + "type": { + "$ref": "200" + }, + "value": "https://www.example.com/myTargetAddress2" + }, + "endpointProfileType": { + "$id": "3094", + "kind": "string", + "type": { + "$ref": "204" + }, + "value": "myEndpointProfileType" + }, + "authentication": { + "$id": "3095", + "kind": "model", + "type": { + "$ref": "208" + }, + "value": { + "$id": "3096", + "method": { + "$id": "3097", + "kind": "string", + "type": { + "$ref": "24" + }, + "value": "UsernamePassword" + }, + "usernamePasswordCredentials": { + "$id": "3098", + "kind": "model", + "type": { + "$ref": "213" + }, + "value": { + "$id": "3099", + "usernameSecretName": { + "$id": "3100", + "kind": "string", + "type": { + "$ref": "215" + }, + "value": "usernameRef" + }, + "passwordSecretName": { + "$id": "3101", + "kind": "string", + "type": { + "$ref": "219" + }, + "value": "passwordRef" + } + } + } + } + }, + "provisioningState": { + "$id": "3102", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + ] + } + } + } + } + ] + } + ] + }, + { + "$id": "3103", + "name": "listBySubscription", + "resourceName": "AssetEndpointProfile", + "doc": "List AssetEndpointProfile resources by subscription ID", + "accessibility": "public", + "parameters": [ + { + "$id": "3104", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "3105", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "3106", + "type": { + "$id": "3107", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-11-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "3108", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "3109", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "3110", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "3111", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "3112", + "kind": "constant", + "valueType": { + "$id": "3113", + "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": "3114", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "327" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "GET", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/providers/Microsoft.DeviceRegistry/assetEndpointProfiles", + "bufferResponse": true, + "paging": { + "$id": "3115", + "itemPropertySegments": [ + "value" + ], + "nextLink": { + "$id": "3116", + "responseSegments": [ + "nextLink" + ], + "responseLocation": "Body" + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfiles.listBySubscription", + "decorators": [], + "examples": [ + { + "$id": "3117", + "kind": "http", + "name": "List_AssetEndpointProfiles_Subscription", + "description": "List_AssetEndpointProfiles_Subscription", + "filePath": "2024-11-01/List_AssetEndpointProfiles_Subscription.json", + "parameters": [ + { + "$id": "3118", + "parameter": { + "$ref": "3104" + }, + "value": { + "$id": "3119", + "kind": "string", + "type": { + "$ref": "3105" + }, + "value": "2024-11-01" + } + }, + { + "$id": "3120", + "parameter": { + "$ref": "3108" + }, + "value": { + "$id": "3121", + "kind": "string", + "type": { + "$ref": "3109" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + } + ], + "responses": [ + { + "$id": "3122", + "response": { + "$ref": "3114" + }, + "statusCode": 200, + "bodyValue": { + "$id": "3123", + "kind": "model", + "type": { + "$ref": "327" + }, + "value": { + "$id": "3124", + "value": { + "$id": "3125", + "kind": "array", + "type": { + "$ref": "329" + }, + "value": [ + { + "$id": "3126", + "kind": "model", + "type": { + "$ref": "181" + }, + "value": { + "$id": "3127", + "id": { + "$id": "3128", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assetEndpointProfiles/my-assetendpointprofile" + }, + "name": { + "$id": "3129", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-assetendpointprofile" + }, + "type": { + "$id": "3130", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assetEndpointProfiles" + }, + "location": { + "$id": "3131", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "3132", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "3133", + "type": { + "$id": "3134", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "3135", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "3136", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "3137", + "site": { + "$id": "3138", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-1" + } + } + }, + "systemData": { + "$id": "3139", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "3140", + "createdBy": { + "$id": "3141", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "3142", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "3143", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "3144", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "3145", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "3146", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "3147", + "kind": "model", + "type": { + "$ref": "194" + }, + "value": { + "$id": "3148", + "uuid": { + "$id": "3149", + "kind": "string", + "type": { + "$ref": "196" + }, + "value": "0796f7c1-f2c8-44d7-9f5b-9a6f9522a85d" + }, + "targetAddress": { + "$id": "3150", + "kind": "string", + "type": { + "$ref": "200" + }, + "value": "https://www.example.com/myTargetAddress" + }, + "endpointProfileType": { + "$id": "3151", + "kind": "string", + "type": { + "$ref": "204" + }, + "value": "myEndpointProfileType" + }, + "authentication": { + "$id": "3152", + "kind": "model", + "type": { + "$ref": "208" + }, + "value": { + "$id": "3153", + "method": { + "$id": "3154", + "kind": "string", + "type": { + "$ref": "24" + }, + "value": "Anonymous" + } + } + }, + "provisioningState": { + "$id": "3155", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + }, + { + "$id": "3156", + "kind": "model", + "type": { + "$ref": "181" + }, + "value": { + "$id": "3157", + "id": { + "$id": "3158", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assetEndpointProfiles/my-assetendpointprofile1" + }, + "name": { + "$id": "3159", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-assetendpointprofile1" + }, + "type": { + "$id": "3160", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assetEndpointProfiles" + }, + "location": { + "$id": "3161", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "3162", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "3163", + "type": { + "$id": "3164", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "3165", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "3166", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "3167", + "site": { + "$id": "3168", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-2" + } + } + }, + "systemData": { + "$id": "3169", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "3170", + "createdBy": { + "$id": "3171", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "3172", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "3173", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "3174", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "3175", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "3176", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "3177", + "kind": "model", + "type": { + "$ref": "194" + }, + "value": { + "$id": "3178", + "uuid": { + "$id": "3179", + "kind": "string", + "type": { + "$ref": "196" + }, + "value": "7824a74f-21e1-4458-ae06-604d3a241d2c" + }, + "targetAddress": { + "$id": "3180", + "kind": "string", + "type": { + "$ref": "200" + }, + "value": "https://www.example.com/myTargetAddress1" + }, + "endpointProfileType": { + "$id": "3181", + "kind": "string", + "type": { + "$ref": "204" + }, + "value": "myEndpointProfileType" + }, + "authentication": { + "$id": "3182", + "kind": "model", + "type": { + "$ref": "208" + }, + "value": { + "$id": "3183", + "method": { + "$id": "3184", + "kind": "string", + "type": { + "$ref": "24" + }, + "value": "Certificate" + }, + "x509Credentials": { + "$id": "3185", + "kind": "model", + "type": { + "$ref": "225" + }, + "value": { + "$id": "3186", + "certificateSecretName": { + "$id": "3187", + "kind": "string", + "type": { + "$ref": "227" + }, + "value": "certificatRef" + } + } + } + } + }, + "provisioningState": { + "$id": "3188", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + }, + { + "$id": "3189", + "kind": "model", + "type": { + "$ref": "181" + }, + "value": { + "$id": "3190", + "id": { + "$id": "3191", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DeviceRegistry/assetEndpointProfiles/my-assetendpointprofile2" + }, + "name": { + "$id": "3192", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-assetendpointprofile2" + }, + "type": { + "$id": "3193", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/assetEndpointProfiles" + }, + "location": { + "$id": "3194", + "kind": "string", + "type": { + "$ref": "190" + }, + "value": "West Europe" + }, + "extendedLocation": { + "$id": "3195", + "kind": "model", + "type": { + "$ref": "265" + }, + "value": { + "$id": "3196", + "type": { + "$id": "3197", + "kind": "string", + "type": { + "$ref": "267" + }, + "value": "CustomLocation" + }, + "name": { + "$id": "3198", + "kind": "string", + "type": { + "$ref": "271" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.extendedlocation/customlocations/location1" + } + } + }, + "tags": { + "$id": "3199", + "kind": "dict", + "type": { + "$ref": "184" + }, + "value": { + "$id": "3200", + "site": { + "$id": "3201", + "kind": "string", + "type": { + "$ref": "186" + }, + "value": "building-2" + } + } + }, + "systemData": { + "$id": "3202", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "3203", + "createdBy": { + "$id": "3204", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "createdByType": { + "$id": "3205", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "3206", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2022-11-16T00:36:43.2516899Z" + }, + "lastModifiedBy": { + "$id": "3207", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "2ta23112-4596-44ff-b773-19405922bfc1" + }, + "lastModifiedByType": { + "$id": "3208", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "3209", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2022-11-16T01:37:16.0922793Z" + } + } + }, + "properties": { + "$id": "3210", + "kind": "model", + "type": { + "$ref": "194" + }, + "value": { + "$id": "3211", + "uuid": { + "$id": "3212", + "kind": "string", + "type": { + "$ref": "196" + }, + "value": "1824a74f-21e1-4458-ae07-604d3a241d2e" + }, + "targetAddress": { + "$id": "3213", + "kind": "string", + "type": { + "$ref": "200" + }, + "value": "https://www.example.com/myTargetAddress2" + }, + "endpointProfileType": { + "$id": "3214", + "kind": "string", + "type": { + "$ref": "204" + }, + "value": "myEndpointProfileType" + }, + "authentication": { + "$id": "3215", + "kind": "model", + "type": { + "$ref": "208" + }, + "value": { + "$id": "3216", + "method": { + "$id": "3217", + "kind": "string", + "type": { + "$ref": "24" + }, + "value": "UsernamePassword" + }, + "usernamePasswordCredentials": { + "$id": "3218", + "kind": "model", + "type": { + "$ref": "213" + }, + "value": { + "$id": "3219", + "usernameSecretName": { + "$id": "3220", + "kind": "string", + "type": { + "$ref": "215" + }, + "value": "usernameRef" + }, + "passwordSecretName": { + "$id": "3221", + "kind": "string", + "type": { + "$ref": "219" + }, + "value": "passwordRef" + } + } + } + } + }, + "provisioningState": { + "$id": "3222", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + ] + } + } + } + } + ] + } + ] + } + ], + "parent": "DeviceRegistryClient", + "parameters": [ + { + "$id": "3223", + "name": "endpoint", + "nameInRequest": "endpoint", + "doc": "Service host", + "type": { + "$id": "3224", + "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": "3225", + "type": { + "$id": "3226", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "https://management.azure.com" + } + } + ], + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.AssetEndpointProfiles" + }, + { + "$id": "3227", + "name": "BillingContainers", + "namespace": "Microsoft.DeviceRegistry", + "operations": [ + { + "$id": "3228", + "name": "get", + "resourceName": "BillingContainer", + "doc": "Get a BillingContainer", + "accessibility": "public", + "parameters": [ + { + "$id": "3229", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "3230", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "3231", + "type": { + "$id": "3232", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-11-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "3233", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "3234", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "3235", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "3236", + "name": "billingContainerName", + "nameInRequest": "billingContainerName", + "doc": "Name of the billing container.", + "type": { + "$id": "3237", + "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": "3238", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "3239", + "kind": "constant", + "valueType": { + "$id": "3240", + "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": "3241", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "80" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "GET", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/providers/Microsoft.DeviceRegistry/billingContainers/{billingContainerName}", + "bufferResponse": true, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.BillingContainers.get", + "decorators": [], + "examples": [ + { + "$id": "3242", + "kind": "http", + "name": "Get_BillingContainer", + "description": "Get_BillingContainer", + "filePath": "2024-11-01/Get_BillingContainer.json", + "parameters": [ + { + "$id": "3243", + "parameter": { + "$ref": "3229" + }, + "value": { + "$id": "3244", + "kind": "string", + "type": { + "$ref": "3230" + }, + "value": "2024-11-01" + } + }, + { + "$id": "3245", + "parameter": { + "$ref": "3233" + }, + "value": { + "$id": "3246", + "kind": "string", + "type": { + "$ref": "3234" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + }, + { + "$id": "3247", + "parameter": { + "$ref": "3236" + }, + "value": { + "$id": "3248", + "kind": "string", + "type": { + "$ref": "3237" + }, + "value": "my-billingContainer" + } + } + ], + "responses": [ + { + "$id": "3249", + "response": { + "$ref": "3241" + }, + "statusCode": 200, + "bodyValue": { + "$id": "3250", + "kind": "model", + "type": { + "$ref": "80" + }, + "value": { + "$id": "3251", + "id": { + "$id": "3252", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DeviceRegistry/billingContainers/my-billingContainer" + }, + "name": { + "$id": "3253", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-billingContainer" + }, + "type": { + "$id": "3254", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/billingcontainers" + }, + "etag": { + "$id": "3255", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "\"00001300-0000-0100-0000-6671f0170000\"" + }, + "systemData": { + "$id": "3256", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "3257", + "createdBy": { + "$id": "3258", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "0e1b4448-67b9-46a1-8158-e3dade4c008e" + }, + "createdByType": { + "$id": "3259", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "3260", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2024-05-20T21:51:21.169954Z" + }, + "lastModifiedBy": { + "$id": "3261", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "0e1b4448-67b9-46a1-8158-e3dade4c008e" + }, + "lastModifiedByType": { + "$id": "3262", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "3263", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2024-06-18T20:37:41.9371846Z" + } + } + }, + "properties": { + "$id": "3264", + "kind": "model", + "type": { + "$ref": "126" + }, + "value": { + "$id": "3265", + "provisioningState": { + "$id": "3266", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + } + ] + } + ] + }, + { + "$id": "3267", + "name": "listBySubscription", + "resourceName": "BillingContainer", + "doc": "List BillingContainer resources by subscription ID", + "accessibility": "public", + "parameters": [ + { + "$id": "3268", + "name": "apiVersion", + "nameInRequest": "api-version", + "doc": "The API version to use for this operation.", + "type": { + "$id": "3269", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "location": "Query", + "isApiVersion": true, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "defaultValue": { + "$id": "3270", + "type": { + "$id": "3271", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "2024-11-01" + }, + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "3272", + "name": "subscriptionId", + "nameInRequest": "subscriptionId", + "doc": "The ID of the target subscription. The value must be an UUID.", + "type": { + "$id": "3273", + "kind": "string", + "name": "uuid", + "crossLanguageDefinitionId": "Azure.Core.uuid", + "baseType": { + "$id": "3274", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string", + "decorators": [] + }, + "decorators": [] + }, + "location": "Path", + "isApiVersion": false, + "isContentType": false, + "isEndpoint": false, + "explode": false, + "isRequired": true, + "kind": "Client", + "decorators": [], + "skipUrlEncoding": false + }, + { + "$id": "3275", + "name": "accept", + "nameInRequest": "Accept", + "type": { + "$id": "3276", + "kind": "constant", + "valueType": { + "$id": "3277", + "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": "3278", + "statusCodes": [ + 200 + ], + "bodyType": { + "$ref": "171" + }, + "headers": [], + "isErrorResponse": false, + "contentTypes": [ + "application/json" + ] + } + ], + "httpMethod": "GET", + "uri": "{endpoint}", + "path": "/subscriptions/{subscriptionId}/providers/Microsoft.DeviceRegistry/billingContainers", + "bufferResponse": true, + "paging": { + "$id": "3279", + "itemPropertySegments": [ + "value" + ], + "nextLink": { + "$id": "3280", + "responseSegments": [ + "nextLink" + ], + "responseLocation": "Body" + } + }, + "generateProtocolMethod": true, + "generateConvenienceMethod": true, + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.BillingContainers.listBySubscription", + "decorators": [], + "examples": [ + { + "$id": "3281", + "kind": "http", + "name": "List_BillingContainers_Subscription", + "description": "List_BillingContainers_Subscription", + "filePath": "2024-11-01/List_BillingContainers_Subscription.json", + "parameters": [ + { + "$id": "3282", + "parameter": { + "$ref": "3268" + }, + "value": { + "$id": "3283", + "kind": "string", + "type": { + "$ref": "3269" + }, + "value": "2024-11-01" + } + }, + { + "$id": "3284", + "parameter": { + "$ref": "3272" + }, + "value": { + "$id": "3285", + "kind": "string", + "type": { + "$ref": "3273" + }, + "value": "00000000-0000-0000-0000-000000000000" + } + } + ], + "responses": [ + { + "$id": "3286", + "response": { + "$ref": "3278" + }, + "statusCode": 200, + "bodyValue": { + "$id": "3287", + "kind": "model", + "type": { + "$ref": "171" + }, + "value": { + "$id": "3288", + "value": { + "$id": "3289", + "kind": "array", + "type": { + "$ref": "173" + }, + "value": [ + { + "$id": "3290", + "kind": "model", + "type": { + "$ref": "80" + }, + "value": { + "$id": "3291", + "id": { + "$id": "3292", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DeviceRegistry/billingContainers/my-billingContainer1" + }, + "name": { + "$id": "3293", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-billingContainer1" + }, + "type": { + "$id": "3294", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/billingcontainers" + }, + "etag": { + "$id": "3295", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "\"4b036688-0000-0100-0000-6632c7bf0000\"" + }, + "systemData": { + "$id": "3296", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "3297", + "createdBy": { + "$id": "3298", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "0e1b4448-67b9-46a1-8158-e3dade4c008e" + }, + "createdByType": { + "$id": "3299", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "3300", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2024-05-01T22:52:46.0165055Z" + }, + "lastModifiedBy": { + "$id": "3301", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "0e1b4448-67b9-46a1-8158-e3dade4c008e" + }, + "lastModifiedByType": { + "$id": "3302", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "3303", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2024-05-01T22:52:46.0165055Z" + } + } + }, + "properties": { + "$id": "3304", + "kind": "model", + "type": { + "$ref": "126" + }, + "value": { + "$id": "3305", + "provisioningState": { + "$id": "3306", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + }, + { + "$id": "3307", + "kind": "model", + "type": { + "$ref": "80" + }, + "value": { + "$id": "3308", + "id": { + "$id": "3309", + "kind": "string", + "type": { + "$ref": "84" + }, + "value": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DeviceRegistry/billingContainers/my-billingContainer2" + }, + "name": { + "$id": "3310", + "kind": "string", + "type": { + "$ref": "89" + }, + "value": "my-billingContainer2" + }, + "type": { + "$id": "3311", + "kind": "string", + "type": { + "$ref": "93" + }, + "value": "Microsoft.DeviceRegistry/billingcontainers" + }, + "etag": { + "$id": "3312", + "kind": "string", + "type": { + "$ref": "133" + }, + "value": "\"4e03ed61-0000-0100-0000-6632d7200000\"" + }, + "systemData": { + "$id": "3313", + "kind": "model", + "type": { + "$ref": "98" + }, + "value": { + "$id": "3314", + "createdBy": { + "$id": "3315", + "kind": "string", + "type": { + "$ref": "100" + }, + "value": "0e1b4448-67b9-46a1-8158-e3dade4c008e" + }, + "createdByType": { + "$id": "3316", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "createdAt": { + "$id": "3317", + "kind": "string", + "type": { + "$ref": "107" + }, + "value": "2024-05-01T23:58:23.3213061Z" + }, + "lastModifiedBy": { + "$id": "3318", + "kind": "string", + "type": { + "$ref": "112" + }, + "value": "0e1b4448-67b9-46a1-8158-e3dade4c008e" + }, + "lastModifiedByType": { + "$id": "3319", + "kind": "string", + "type": { + "$ref": "14" + }, + "value": "Application" + }, + "lastModifiedAt": { + "$id": "3320", + "kind": "string", + "type": { + "$ref": "119" + }, + "value": "2024-05-01T23:58:23.3213061Z" + } + } + }, + "properties": { + "$id": "3321", + "kind": "model", + "type": { + "$ref": "126" + }, + "value": { + "$id": "3322", + "provisioningState": { + "$id": "3323", + "kind": "string", + "type": { + "$ref": "2" + }, + "value": "Succeeded" + } + } + } + } + } + ] + } + } + } + } + ] + } + ] + } + ], + "parent": "DeviceRegistryClient", + "parameters": [ + { + "$id": "3324", + "name": "endpoint", + "nameInRequest": "endpoint", + "doc": "Service host", + "type": { + "$id": "3325", + "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": "3326", + "type": { + "$id": "3327", + "kind": "string", + "name": "string", + "crossLanguageDefinitionId": "TypeSpec.string" + }, + "value": "https://management.azure.com" + } + } + ], + "decorators": [], + "crossLanguageDefinitionId": "Microsoft.DeviceRegistry.BillingContainers" + } + ], + "auth": { + "$id": "3328", + "oAuth2": { + "$id": "3329", + "scopes": [ + "user_impersonation" + ] + } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/Azure.Messaging.EventGrid.Namespaces.sln b/sdk/eventgrid/Azure.Messaging.EventGridV2/Azure.Messaging.EventGrid.Namespaces.sln new file mode 100644 index 000000000000..391d7e850673 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/Azure.Messaging.EventGrid.Namespaces.sln @@ -0,0 +1,54 @@ +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.Core.TestFramework", "..\..\core\Azure.Core.TestFramework\src\Azure.Core.TestFramework.csproj", "{ECC730C1-4AEA-420C-916A-66B19B79E4DC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Azure.Messaging.EventGrid.Namespaces", "src\Azure.Messaging.EventGrid.Namespaces.csproj", "{28FF4005-4467-4E36-92E7-DEA27DEB1519}" +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 + {ECC730C1-4AEA-420C-916A-66B19B79E4DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ECC730C1-4AEA-420C-916A-66B19B79E4DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ECC730C1-4AEA-420C-916A-66B19B79E4DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ECC730C1-4AEA-420C-916A-66B19B79E4DC}.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/eventgrid/Azure.Messaging.EventGridV2/CHANGELOG.md b/sdk/eventgrid/Azure.Messaging.EventGridV2/CHANGELOG.md new file mode 100644 index 000000000000..8b33f0fedccc --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/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/eventgrid/Azure.Messaging.EventGridV2/Directory.Build.props b/sdk/eventgrid/Azure.Messaging.EventGridV2/Directory.Build.props new file mode 100644 index 000000000000..63bd836ad44b --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/Directory.Build.props @@ -0,0 +1,6 @@ + + + + diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/README.md b/sdk/eventgrid/Azure.Messaging.EventGridV2/README.md new file mode 100644 index 000000000000..469ad554f6f8 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/README.md @@ -0,0 +1,107 @@ +# Azure.Messaging.EventGrid.Namespaces client library for .NET + +Azure.Messaging.EventGrid.Namespaces is a managed service that helps developers get secret simply and securely. + +Use the client library for to: + +* [Get secret](https://docs.microsoft.com/azure) + +[Source code][source_root] | [Package (NuGet)][package] | [API reference documentation][reference_docs] | [Product documentation][azconfig_docs] | [Samples][source_samples] + + [Source code](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/eventgrid/Azure.Messaging.EventGrid.Namespaces/src) | [Package (NuGet)](https://www.nuget.org/packages) | [API reference documentation](https://azure.github.io/azure-sdk-for-net) | [Product documentation](https://docs.microsoft.com/azure) + +## Getting started + +This section should include everything a developer needs to do to install and create their first client connection *very quickly*. + +### Install the package + +First, provide instruction for obtaining and installing the package or library. This section might include only a single line of code, like `dotnet add package package-name`, but should enable a developer to successfully install the package from NuGet, npm, or even cloning a GitHub repository. + +Install the client library for .NET with [NuGet](https://www.nuget.org/ ): + +```dotnetcli +dotnet add package Azure.Messaging.EventGrid.Namespaces --prerelease +``` + +### Prerequisites + +Include a section after the install command that details any requirements that must be satisfied before a developer can [authenticate](#authenticate-the-client) and test all of the snippets in the [Examples](#examples) section. For example, for Cosmos DB: + +> You must have an [Azure subscription](https://azure.microsoft.com/free/dotnet/) and [Cosmos DB account](https://docs.microsoft.com/azure/cosmos-db/account-overview) (SQL API). In order to take advantage of the C# 8.0 syntax, it is recommended that you compile using the [.NET Core SDK](https://dotnet.microsoft.com/download) 3.0 or higher with a [language version](https://docs.microsoft.com/dotnet/csharp/language-reference/configure-language-version#override-a-default) of `latest`. It is also possible to compile with the .NET Core SDK 2.1.x using a language version of `preview`. + +### Authenticate the client + +If your library requires authentication for use, such as for Azure services, include instructions and example code needed for initializing and authenticating. + +For example, include details on obtaining an account key and endpoint URI, setting environment variables for each, and initializing the client object. + +### Service API versions + +The client library targets the latest service API version by default. A client instance accepts an optional service API version parameter from its options to specify which API version service to communicate. + +#### Select a service API version + +You have the flexibility to explicitly select a supported service API version when instantiating a client by configuring its associated options. This ensures that the client can communicate with services using the specified API version. + +For example, + +```C# Snippet:CreateClientForSpecificApiVersion +Uri endpoint = new Uri(""); +DefaultAzureCredential credential = new DefaultAzureCredential(); +ClientOptions options = new ClientOptions(ClientOptions.ServiceVersion.) +var client = new Client(endpoint, credential, options); +``` + +When selecting an API version, it's important to verify that there are no breaking changes compared to the latest API version. If there are significant differences, API calls may fail due to incompatibility. + +Always ensure that the chosen API version is fully supported and operational for your specific use case and that it aligns with the service's versioning policy. + +## Key concepts + +The *Key concepts* section should describe the functionality of the main classes. Point out the most important and useful classes in the package (with links to their reference pages) and explain how those classes work together. Feel free to use bulleted lists, tables, code blocks, or even diagrams for clarity. + +Include the *Thread safety* and *Additional concepts* sections below at the end of your *Key concepts* section. You may remove or add links depending on what your library makes use of: + +### Thread safety + +We guarantee that all client instance methods are thread-safe and independent of each other ([guideline](https://azure.github.io/azure-sdk/dotnet_introduction.html#dotnet-service-methods-thread-safety)). This ensures that the recommendation of reusing client instances is always safe, even across threads. + +### Additional concepts + +[Client options](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/core/Azure.Core/README.md#configuring-service-clients-using-clientoptions) | +[Accessing the response](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/core/Azure.Core/README.md#accessing-http-response-details-using-responset) | +[Long-running operations](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/core/Azure.Core/README.md#consuming-long-running-operations-using-operationt) | +[Handling failures](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/core/Azure.Core/README.md#reporting-errors-requestfailedexception) | +[Diagnostics](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/core/Azure.Core/samples/Diagnostics.md) | +[Mocking](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/core/Azure.Core/README.md#mocking) | +[Client lifetime](https://devblogs.microsoft.com/azure-sdk/lifetime-management-and-thread-safety-guarantees-of-azure-sdk-net-clients/) + + +## Examples + +You can familiarize yourself with different APIs using [Samples](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/eventgrid/Azure.Messaging.EventGrid.Namespaces/samples). + +## Troubleshooting + +Describe common errors and exceptions, how to "unpack" them if necessary, and include guidance for graceful handling and recovery. + +Provide information to help developers avoid throttling or other service-enforced errors they might encounter. For example, provide guidance and examples for using retry or connection policies in the API. + +If the package or a related package supports it, include tips for logging or enabling instrumentation to help them debug their code. + +## Next steps + +* Provide a link to additional code examples, ideally to those sitting alongside the README in the package's `/samples` directory. +* If appropriate, point users to other packages that might be useful. +* If you think there's a good chance that developers might stumble across your package in error (because they're searching for specific functionality and mistakenly think the package provides that functionality), point them to the packages they might be looking for. + +## Contributing + +This is a template, but your SDK readme should include details on how to contribute code to the repo/package. + + +[style-guide-msft]: https://docs.microsoft.com/style-guide/capitalization +[style-guide-cloud]: https://aka.ms/azsdk/cloud-style-guide + +![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-net/sdk/eventgrid/Azure.Messaging.EventGrid.Namespaces/README.png) \ No newline at end of file diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/api/Azure.Messaging.EventGrid.Namespaces.net8.0.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/api/Azure.Messaging.EventGrid.Namespaces.net8.0.cs new file mode 100644 index 000000000000..19ab2d90251f --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/api/Azure.Messaging.EventGrid.Namespaces.net8.0.cs @@ -0,0 +1,131 @@ +namespace Azure.Messaging.EventGrid.Namespaces +{ + public partial class AcknowledgeResult : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + internal AcknowledgeResult() { } + public System.Collections.Generic.IReadOnlyList FailedLockTokens { get { throw null; } } + public System.Collections.Generic.IReadOnlyList SucceededLockTokens { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.Messaging.EventGrid.Namespaces.AcknowledgeResult 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.Messaging.EventGrid.Namespaces.AcknowledgeResult 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 AzureMessagingEventGridNamespacesClientOptions : Azure.Core.ClientOptions + { + public AzureMessagingEventGridNamespacesClientOptions(Azure.Messaging.EventGrid.Namespaces.AzureMessagingEventGridNamespacesClientOptions.ServiceVersion version = Azure.Messaging.EventGrid.Namespaces.AzureMessagingEventGridNamespacesClientOptions.ServiceVersion.V2024_06_01) { } + public enum ServiceVersion + { + V2023_11_01 = 1, + V2024_06_01 = 2, + } + } + public partial class EventGridReceiverClient + { + protected EventGridReceiverClient() { } + public EventGridReceiverClient(System.Uri endpoint, Azure.AzureKeyCredential credential) { } + public EventGridReceiverClient(System.Uri endpoint, Azure.AzureKeyCredential credential, Azure.Messaging.EventGrid.Namespaces.AzureMessagingEventGridNamespacesClientOptions options) { } + public EventGridReceiverClient(System.Uri endpoint, Azure.Core.TokenCredential credential) { } + public EventGridReceiverClient(System.Uri endpoint, Azure.Core.TokenCredential credential, Azure.Messaging.EventGrid.Namespaces.AzureMessagingEventGridNamespacesClientOptions options) { } + public virtual Azure.Core.Pipeline.HttpPipeline Pipeline { get { throw null; } } + } + public partial class EventGridSenderClient + { + protected EventGridSenderClient() { } + public EventGridSenderClient(System.Uri endpoint, Azure.AzureKeyCredential credential) { } + public EventGridSenderClient(System.Uri endpoint, Azure.AzureKeyCredential credential, Azure.Messaging.EventGrid.Namespaces.AzureMessagingEventGridNamespacesClientOptions options) { } + public EventGridSenderClient(System.Uri endpoint, Azure.Core.TokenCredential credential) { } + public EventGridSenderClient(System.Uri endpoint, Azure.Core.TokenCredential credential, Azure.Messaging.EventGrid.Namespaces.AzureMessagingEventGridNamespacesClientOptions options) { } + public virtual Azure.Core.Pipeline.HttpPipeline Pipeline { get { throw null; } } + } + public partial class FailedLockToken : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + internal FailedLockToken() { } + public Azure.ResponseError Error { get { throw null; } } + public string LockToken { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.Messaging.EventGrid.Namespaces.FailedLockToken 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.Messaging.EventGrid.Namespaces.FailedLockToken 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 MessagingEventGridNamespacesModelFactory + { + public static Azure.Messaging.EventGrid.Namespaces.AcknowledgeResult AcknowledgeResult(System.Collections.Generic.IEnumerable failedLockTokens = null, System.Collections.Generic.IEnumerable succeededLockTokens = null) { throw null; } + public static Azure.Messaging.EventGrid.Namespaces.FailedLockToken FailedLockToken(string lockToken = null, Azure.ResponseError error = null) { throw null; } + public static Azure.Messaging.EventGrid.Namespaces.RejectResult RejectResult(System.Collections.Generic.IEnumerable failedLockTokens = null, System.Collections.Generic.IEnumerable succeededLockTokens = null) { throw null; } + public static Azure.Messaging.EventGrid.Namespaces.ReleaseResult ReleaseResult(System.Collections.Generic.IEnumerable failedLockTokens = null, System.Collections.Generic.IEnumerable succeededLockTokens = null) { throw null; } + public static Azure.Messaging.EventGrid.Namespaces.RenewLocksResult RenewLocksResult(System.Collections.Generic.IEnumerable failedLockTokens = null, System.Collections.Generic.IEnumerable succeededLockTokens = null) { throw null; } + } + public partial class RejectResult : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + internal RejectResult() { } + public System.Collections.Generic.IReadOnlyList FailedLockTokens { get { throw null; } } + public System.Collections.Generic.IReadOnlyList SucceededLockTokens { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.Messaging.EventGrid.Namespaces.RejectResult 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.Messaging.EventGrid.Namespaces.RejectResult 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 ReleaseDelay : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public ReleaseDelay(string value) { throw null; } + public static Azure.Messaging.EventGrid.Namespaces.ReleaseDelay NoDelay { get { throw null; } } + public static Azure.Messaging.EventGrid.Namespaces.ReleaseDelay OneHour { get { throw null; } } + public static Azure.Messaging.EventGrid.Namespaces.ReleaseDelay OneMinute { get { throw null; } } + public static Azure.Messaging.EventGrid.Namespaces.ReleaseDelay TenMinutes { get { throw null; } } + public static Azure.Messaging.EventGrid.Namespaces.ReleaseDelay TenSeconds { get { throw null; } } + public bool Equals(Azure.Messaging.EventGrid.Namespaces.ReleaseDelay 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.Messaging.EventGrid.Namespaces.ReleaseDelay left, Azure.Messaging.EventGrid.Namespaces.ReleaseDelay right) { throw null; } + public static implicit operator Azure.Messaging.EventGrid.Namespaces.ReleaseDelay (string value) { throw null; } + public static bool operator !=(Azure.Messaging.EventGrid.Namespaces.ReleaseDelay left, Azure.Messaging.EventGrid.Namespaces.ReleaseDelay right) { throw null; } + public override string ToString() { throw null; } + } + public partial class ReleaseResult : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + internal ReleaseResult() { } + public System.Collections.Generic.IReadOnlyList FailedLockTokens { get { throw null; } } + public System.Collections.Generic.IReadOnlyList SucceededLockTokens { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.Messaging.EventGrid.Namespaces.ReleaseResult 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.Messaging.EventGrid.Namespaces.ReleaseResult 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 RenewLocksResult : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + internal RenewLocksResult() { } + public System.Collections.Generic.IReadOnlyList FailedLockTokens { get { throw null; } } + public System.Collections.Generic.IReadOnlyList SucceededLockTokens { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.Messaging.EventGrid.Namespaces.RenewLocksResult 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.Messaging.EventGrid.Namespaces.RenewLocksResult 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; } + } +} +namespace Microsoft.Extensions.Azure +{ + public static partial class MessagingEventGridNamespacesClientBuilderExtensions + { + public static Azure.Core.Extensions.IAzureClientBuilder AddEventGridReceiverClient(this TBuilder builder, System.Uri endpoint) where TBuilder : Azure.Core.Extensions.IAzureClientFactoryBuilderWithCredential { throw null; } + public static Azure.Core.Extensions.IAzureClientBuilder AddEventGridReceiverClient(this TBuilder builder, System.Uri endpoint, Azure.AzureKeyCredential credential) where TBuilder : Azure.Core.Extensions.IAzureClientFactoryBuilder { throw null; } + public static Azure.Core.Extensions.IAzureClientBuilder AddEventGridReceiverClient(this TBuilder builder, TConfiguration configuration) where TBuilder : Azure.Core.Extensions.IAzureClientFactoryBuilderWithConfiguration { throw null; } + public static Azure.Core.Extensions.IAzureClientBuilder AddEventGridSenderClient(this TBuilder builder, System.Uri endpoint) where TBuilder : Azure.Core.Extensions.IAzureClientFactoryBuilderWithCredential { throw null; } + public static Azure.Core.Extensions.IAzureClientBuilder AddEventGridSenderClient(this TBuilder builder, System.Uri endpoint, Azure.AzureKeyCredential credential) where TBuilder : Azure.Core.Extensions.IAzureClientFactoryBuilder { throw null; } + public static Azure.Core.Extensions.IAzureClientBuilder AddEventGridSenderClient(this TBuilder builder, TConfiguration configuration) where TBuilder : Azure.Core.Extensions.IAzureClientFactoryBuilderWithConfiguration { throw null; } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/api/Azure.Messaging.EventGrid.Namespaces.netstandard2.0.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/api/Azure.Messaging.EventGrid.Namespaces.netstandard2.0.cs new file mode 100644 index 000000000000..19ab2d90251f --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/api/Azure.Messaging.EventGrid.Namespaces.netstandard2.0.cs @@ -0,0 +1,131 @@ +namespace Azure.Messaging.EventGrid.Namespaces +{ + public partial class AcknowledgeResult : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + internal AcknowledgeResult() { } + public System.Collections.Generic.IReadOnlyList FailedLockTokens { get { throw null; } } + public System.Collections.Generic.IReadOnlyList SucceededLockTokens { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.Messaging.EventGrid.Namespaces.AcknowledgeResult 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.Messaging.EventGrid.Namespaces.AcknowledgeResult 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 AzureMessagingEventGridNamespacesClientOptions : Azure.Core.ClientOptions + { + public AzureMessagingEventGridNamespacesClientOptions(Azure.Messaging.EventGrid.Namespaces.AzureMessagingEventGridNamespacesClientOptions.ServiceVersion version = Azure.Messaging.EventGrid.Namespaces.AzureMessagingEventGridNamespacesClientOptions.ServiceVersion.V2024_06_01) { } + public enum ServiceVersion + { + V2023_11_01 = 1, + V2024_06_01 = 2, + } + } + public partial class EventGridReceiverClient + { + protected EventGridReceiverClient() { } + public EventGridReceiverClient(System.Uri endpoint, Azure.AzureKeyCredential credential) { } + public EventGridReceiverClient(System.Uri endpoint, Azure.AzureKeyCredential credential, Azure.Messaging.EventGrid.Namespaces.AzureMessagingEventGridNamespacesClientOptions options) { } + public EventGridReceiverClient(System.Uri endpoint, Azure.Core.TokenCredential credential) { } + public EventGridReceiverClient(System.Uri endpoint, Azure.Core.TokenCredential credential, Azure.Messaging.EventGrid.Namespaces.AzureMessagingEventGridNamespacesClientOptions options) { } + public virtual Azure.Core.Pipeline.HttpPipeline Pipeline { get { throw null; } } + } + public partial class EventGridSenderClient + { + protected EventGridSenderClient() { } + public EventGridSenderClient(System.Uri endpoint, Azure.AzureKeyCredential credential) { } + public EventGridSenderClient(System.Uri endpoint, Azure.AzureKeyCredential credential, Azure.Messaging.EventGrid.Namespaces.AzureMessagingEventGridNamespacesClientOptions options) { } + public EventGridSenderClient(System.Uri endpoint, Azure.Core.TokenCredential credential) { } + public EventGridSenderClient(System.Uri endpoint, Azure.Core.TokenCredential credential, Azure.Messaging.EventGrid.Namespaces.AzureMessagingEventGridNamespacesClientOptions options) { } + public virtual Azure.Core.Pipeline.HttpPipeline Pipeline { get { throw null; } } + } + public partial class FailedLockToken : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + internal FailedLockToken() { } + public Azure.ResponseError Error { get { throw null; } } + public string LockToken { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.Messaging.EventGrid.Namespaces.FailedLockToken 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.Messaging.EventGrid.Namespaces.FailedLockToken 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 MessagingEventGridNamespacesModelFactory + { + public static Azure.Messaging.EventGrid.Namespaces.AcknowledgeResult AcknowledgeResult(System.Collections.Generic.IEnumerable failedLockTokens = null, System.Collections.Generic.IEnumerable succeededLockTokens = null) { throw null; } + public static Azure.Messaging.EventGrid.Namespaces.FailedLockToken FailedLockToken(string lockToken = null, Azure.ResponseError error = null) { throw null; } + public static Azure.Messaging.EventGrid.Namespaces.RejectResult RejectResult(System.Collections.Generic.IEnumerable failedLockTokens = null, System.Collections.Generic.IEnumerable succeededLockTokens = null) { throw null; } + public static Azure.Messaging.EventGrid.Namespaces.ReleaseResult ReleaseResult(System.Collections.Generic.IEnumerable failedLockTokens = null, System.Collections.Generic.IEnumerable succeededLockTokens = null) { throw null; } + public static Azure.Messaging.EventGrid.Namespaces.RenewLocksResult RenewLocksResult(System.Collections.Generic.IEnumerable failedLockTokens = null, System.Collections.Generic.IEnumerable succeededLockTokens = null) { throw null; } + } + public partial class RejectResult : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + internal RejectResult() { } + public System.Collections.Generic.IReadOnlyList FailedLockTokens { get { throw null; } } + public System.Collections.Generic.IReadOnlyList SucceededLockTokens { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.Messaging.EventGrid.Namespaces.RejectResult 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.Messaging.EventGrid.Namespaces.RejectResult 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 ReleaseDelay : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public ReleaseDelay(string value) { throw null; } + public static Azure.Messaging.EventGrid.Namespaces.ReleaseDelay NoDelay { get { throw null; } } + public static Azure.Messaging.EventGrid.Namespaces.ReleaseDelay OneHour { get { throw null; } } + public static Azure.Messaging.EventGrid.Namespaces.ReleaseDelay OneMinute { get { throw null; } } + public static Azure.Messaging.EventGrid.Namespaces.ReleaseDelay TenMinutes { get { throw null; } } + public static Azure.Messaging.EventGrid.Namespaces.ReleaseDelay TenSeconds { get { throw null; } } + public bool Equals(Azure.Messaging.EventGrid.Namespaces.ReleaseDelay 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.Messaging.EventGrid.Namespaces.ReleaseDelay left, Azure.Messaging.EventGrid.Namespaces.ReleaseDelay right) { throw null; } + public static implicit operator Azure.Messaging.EventGrid.Namespaces.ReleaseDelay (string value) { throw null; } + public static bool operator !=(Azure.Messaging.EventGrid.Namespaces.ReleaseDelay left, Azure.Messaging.EventGrid.Namespaces.ReleaseDelay right) { throw null; } + public override string ToString() { throw null; } + } + public partial class ReleaseResult : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + internal ReleaseResult() { } + public System.Collections.Generic.IReadOnlyList FailedLockTokens { get { throw null; } } + public System.Collections.Generic.IReadOnlyList SucceededLockTokens { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.Messaging.EventGrid.Namespaces.ReleaseResult 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.Messaging.EventGrid.Namespaces.ReleaseResult 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 RenewLocksResult : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + internal RenewLocksResult() { } + public System.Collections.Generic.IReadOnlyList FailedLockTokens { get { throw null; } } + public System.Collections.Generic.IReadOnlyList SucceededLockTokens { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.Messaging.EventGrid.Namespaces.RenewLocksResult 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.Messaging.EventGrid.Namespaces.RenewLocksResult 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; } + } +} +namespace Microsoft.Extensions.Azure +{ + public static partial class MessagingEventGridNamespacesClientBuilderExtensions + { + public static Azure.Core.Extensions.IAzureClientBuilder AddEventGridReceiverClient(this TBuilder builder, System.Uri endpoint) where TBuilder : Azure.Core.Extensions.IAzureClientFactoryBuilderWithCredential { throw null; } + public static Azure.Core.Extensions.IAzureClientBuilder AddEventGridReceiverClient(this TBuilder builder, System.Uri endpoint, Azure.AzureKeyCredential credential) where TBuilder : Azure.Core.Extensions.IAzureClientFactoryBuilder { throw null; } + public static Azure.Core.Extensions.IAzureClientBuilder AddEventGridReceiverClient(this TBuilder builder, TConfiguration configuration) where TBuilder : Azure.Core.Extensions.IAzureClientFactoryBuilderWithConfiguration { throw null; } + public static Azure.Core.Extensions.IAzureClientBuilder AddEventGridSenderClient(this TBuilder builder, System.Uri endpoint) where TBuilder : Azure.Core.Extensions.IAzureClientFactoryBuilderWithCredential { throw null; } + public static Azure.Core.Extensions.IAzureClientBuilder AddEventGridSenderClient(this TBuilder builder, System.Uri endpoint, Azure.AzureKeyCredential credential) where TBuilder : Azure.Core.Extensions.IAzureClientFactoryBuilder { throw null; } + public static Azure.Core.Extensions.IAzureClientBuilder AddEventGridSenderClient(this TBuilder builder, TConfiguration configuration) where TBuilder : Azure.Core.Extensions.IAzureClientFactoryBuilderWithConfiguration { throw null; } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Azure.Messaging.EventGrid.Namespaces.csproj b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Azure.Messaging.EventGrid.Namespaces.csproj new file mode 100644 index 000000000000..63c432e943e1 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Azure.Messaging.EventGrid.Namespaces.csproj @@ -0,0 +1,20 @@ + + + This is the Azure.Messaging.EventGrid.Namespaces client library for developing .NET applications with rich experience. + Azure SDK Code Generation Azure.Messaging.EventGrid.Namespaces for Azure Data Plane + 1.0.0-beta.1 + Azure.Messaging.EventGrid.Namespaces + $(RequiredTargetFrameworks) + true + + + + + + + + + + + + diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AcknowledgeRequest.Serialization.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AcknowledgeRequest.Serialization.cs new file mode 100644 index 000000000000..3a9b9f5a0937 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AcknowledgeRequest.Serialization.cs @@ -0,0 +1,152 @@ +// 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.Messaging.EventGrid.Namespaces +{ + internal partial class AcknowledgeRequest : 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(AcknowledgeRequest)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("lockTokens"u8); + writer.WriteStartArray(); + foreach (var item in LockTokens) + { + 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 + } + } + } + + AcknowledgeRequest 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(AcknowledgeRequest)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeAcknowledgeRequest(document.RootElement, options); + } + + internal static AcknowledgeRequest DeserializeAcknowledgeRequest(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList lockTokens = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("lockTokens"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + lockTokens = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new AcknowledgeRequest(lockTokens, 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(AcknowledgeRequest)} does not support writing '{options.Format}' format."); + } + } + + AcknowledgeRequest 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 DeserializeAcknowledgeRequest(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(AcknowledgeRequest)} 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 AcknowledgeRequest FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeAcknowledgeRequest(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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AcknowledgeRequest.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AcknowledgeRequest.cs new file mode 100644 index 000000000000..da487d167f8b --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AcknowledgeRequest.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 Azure.Messaging.EventGrid.Namespaces +{ + /// The AcknowledgeRequest. + internal partial class AcknowledgeRequest + { + /// + /// 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 . + /// Array of lock tokens. + /// is null. + internal AcknowledgeRequest(IEnumerable lockTokens) + { + Argument.AssertNotNull(lockTokens, nameof(lockTokens)); + + LockTokens = lockTokens.ToList(); + } + + /// Initializes a new instance of . + /// Array of lock tokens. + /// Keeps track of any properties unknown to the library. + internal AcknowledgeRequest(IReadOnlyList lockTokens, IDictionary serializedAdditionalRawData) + { + LockTokens = lockTokens; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal AcknowledgeRequest() + { + } + + /// Array of lock tokens. + public IReadOnlyList LockTokens { get; } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AcknowledgeResult.Serialization.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AcknowledgeResult.Serialization.cs new file mode 100644 index 000000000000..87709aa7147d --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AcknowledgeResult.Serialization.cs @@ -0,0 +1,170 @@ +// 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.Messaging.EventGrid.Namespaces +{ + public partial class AcknowledgeResult : 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(AcknowledgeResult)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("failedLockTokens"u8); + writer.WriteStartArray(); + foreach (var item in FailedLockTokens) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + writer.WritePropertyName("succeededLockTokens"u8); + writer.WriteStartArray(); + foreach (var item in SucceededLockTokens) + { + 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 + } + } + } + + AcknowledgeResult 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(AcknowledgeResult)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeAcknowledgeResult(document.RootElement, options); + } + + internal static AcknowledgeResult DeserializeAcknowledgeResult(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList failedLockTokens = default; + IReadOnlyList succeededLockTokens = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("failedLockTokens"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(FailedLockToken.DeserializeFailedLockToken(item, options)); + } + failedLockTokens = array; + continue; + } + if (property.NameEquals("succeededLockTokens"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + succeededLockTokens = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new AcknowledgeResult(failedLockTokens, succeededLockTokens, 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(AcknowledgeResult)} does not support writing '{options.Format}' format."); + } + } + + AcknowledgeResult 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 DeserializeAcknowledgeResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(AcknowledgeResult)} 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 AcknowledgeResult FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeAcknowledgeResult(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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AcknowledgeResult.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AcknowledgeResult.cs new file mode 100644 index 000000000000..a30895c4a023 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AcknowledgeResult.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 Azure.Messaging.EventGrid.Namespaces +{ + /// The result of the Acknowledge operation. + public partial class AcknowledgeResult + { + /// + /// 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 . + /// Array of FailedLockToken for failed cloud events. Each FailedLockToken includes the lock token along with the related error information (namely, the error code and description). + /// Array of lock tokens for the successfully acknowledged cloud events. + /// or is null. + internal AcknowledgeResult(IEnumerable failedLockTokens, IEnumerable succeededLockTokens) + { + Argument.AssertNotNull(failedLockTokens, nameof(failedLockTokens)); + Argument.AssertNotNull(succeededLockTokens, nameof(succeededLockTokens)); + + FailedLockTokens = failedLockTokens.ToList(); + SucceededLockTokens = succeededLockTokens.ToList(); + } + + /// Initializes a new instance of . + /// Array of FailedLockToken for failed cloud events. Each FailedLockToken includes the lock token along with the related error information (namely, the error code and description). + /// Array of lock tokens for the successfully acknowledged cloud events. + /// Keeps track of any properties unknown to the library. + internal AcknowledgeResult(IReadOnlyList failedLockTokens, IReadOnlyList succeededLockTokens, IDictionary serializedAdditionalRawData) + { + FailedLockTokens = failedLockTokens; + SucceededLockTokens = succeededLockTokens; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal AcknowledgeResult() + { + } + + /// Array of FailedLockToken for failed cloud events. Each FailedLockToken includes the lock token along with the related error information (namely, the error code and description). + public IReadOnlyList FailedLockTokens { get; } + /// Array of lock tokens for the successfully acknowledged cloud events. + public IReadOnlyList SucceededLockTokens { get; } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AzureMessagingEventGridNamespacesClientOptions.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AzureMessagingEventGridNamespacesClientOptions.cs new file mode 100644 index 000000000000..028d63a6a191 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/AzureMessagingEventGridNamespacesClientOptions.cs @@ -0,0 +1,40 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure.Core; + +namespace Azure.Messaging.EventGrid.Namespaces +{ + /// Client options for Azure.Messaging.EventGrid.Namespaces library clients. + public partial class AzureMessagingEventGridNamespacesClientOptions : ClientOptions + { + private const ServiceVersion LatestVersion = ServiceVersion.V2024_06_01; + + /// The version of the service to use. + public enum ServiceVersion + { + /// Service version "2023-11-01". + V2023_11_01 = 1, + /// Service version "2024-06-01". + V2024_06_01 = 2, + } + + internal string Version { get; } + + /// Initializes new instance of AzureMessagingEventGridNamespacesClientOptions. + public AzureMessagingEventGridNamespacesClientOptions(ServiceVersion version = LatestVersion) + { + Version = version switch + { + ServiceVersion.V2023_11_01 => "2023-11-01", + ServiceVersion.V2024_06_01 => "2024-06-01", + _ => throw new NotSupportedException() + }; + } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/BrokerProperties.Serialization.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/BrokerProperties.Serialization.cs new file mode 100644 index 000000000000..bc10318d0710 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/BrokerProperties.Serialization.cs @@ -0,0 +1,150 @@ +// 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.Messaging.EventGrid.Namespaces +{ + internal partial class BrokerProperties : 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(BrokerProperties)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("lockToken"u8); + writer.WriteStringValue(LockToken); + writer.WritePropertyName("deliveryCount"u8); + writer.WriteNumberValue(DeliveryCount); + 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 + } + } + } + + BrokerProperties 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(BrokerProperties)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeBrokerProperties(document.RootElement, options); + } + + internal static BrokerProperties DeserializeBrokerProperties(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string lockToken = default; + int deliveryCount = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("lockToken"u8)) + { + lockToken = property.Value.GetString(); + continue; + } + if (property.NameEquals("deliveryCount"u8)) + { + deliveryCount = property.Value.GetInt32(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new BrokerProperties(lockToken, deliveryCount, 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(BrokerProperties)} does not support writing '{options.Format}' format."); + } + } + + BrokerProperties 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 DeserializeBrokerProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(BrokerProperties)} 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 BrokerProperties FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeBrokerProperties(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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/BrokerProperties.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/BrokerProperties.cs new file mode 100644 index 000000000000..78d00f1266d5 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/BrokerProperties.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.Messaging.EventGrid.Namespaces +{ + /// Properties of the Event Broker operation. + internal partial class BrokerProperties + { + /// + /// 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 token of the lock on the event. + /// The attempt count for delivering the event. + /// is null. + internal BrokerProperties(string lockToken, int deliveryCount) + { + Argument.AssertNotNull(lockToken, nameof(lockToken)); + + LockToken = lockToken; + DeliveryCount = deliveryCount; + } + + /// Initializes a new instance of . + /// The token of the lock on the event. + /// The attempt count for delivering the event. + /// Keeps track of any properties unknown to the library. + internal BrokerProperties(string lockToken, int deliveryCount, IDictionary serializedAdditionalRawData) + { + LockToken = lockToken; + DeliveryCount = deliveryCount; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal BrokerProperties() + { + } + + /// The token of the lock on the event. + public string LockToken { get; } + /// The attempt count for delivering the event. + public int DeliveryCount { get; } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/CloudEvent.Serialization.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/CloudEvent.Serialization.cs new file mode 100644 index 000000000000..054c9263ef81 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/CloudEvent.Serialization.cs @@ -0,0 +1,262 @@ +// 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.Messaging.EventGrid.Namespaces +{ + internal partial class CloudEvent : 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(CloudEvent)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("id"u8); + writer.WriteStringValue(Id); + writer.WritePropertyName("source"u8); + writer.WriteStringValue(Source); + if (Optional.IsDefined(Data)) + { + writer.WritePropertyName("data"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(Data); +#else + using (JsonDocument document = JsonDocument.Parse(Data, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + if (Optional.IsDefined(DataBase64)) + { + writer.WritePropertyName("data_base64"u8); + writer.WriteBase64StringValue(DataBase64.ToArray(), "D"); + } + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type); + if (Optional.IsDefined(Time)) + { + writer.WritePropertyName("time"u8); + writer.WriteStringValue(Time.Value, "O"); + } + writer.WritePropertyName("specversion"u8); + writer.WriteStringValue(Specversion); + if (Optional.IsDefined(Dataschema)) + { + writer.WritePropertyName("dataschema"u8); + writer.WriteStringValue(Dataschema); + } + if (Optional.IsDefined(Datacontenttype)) + { + writer.WritePropertyName("datacontenttype"u8); + writer.WriteStringValue(Datacontenttype); + } + if (Optional.IsDefined(Subject)) + { + writer.WritePropertyName("subject"u8); + writer.WriteStringValue(Subject); + } + 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 + } + } + } + + CloudEvent 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(CloudEvent)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeCloudEvent(document.RootElement, options); + } + + internal static CloudEvent DeserializeCloudEvent(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string id = default; + string source = default; + BinaryData data = default; + BinaryData dataBase64 = default; + string type = default; + DateTimeOffset? time = default; + string specversion = default; + string dataschema = default; + string datacontenttype = default; + string subject = 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("source"u8)) + { + source = property.Value.GetString(); + continue; + } + if (property.NameEquals("data"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + data = BinaryData.FromString(property.Value.GetRawText()); + continue; + } + if (property.NameEquals("data_base64"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + dataBase64 = BinaryData.FromBytes(property.Value.GetBytesFromBase64("D")); + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (property.NameEquals("time"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + time = property.Value.GetDateTimeOffset("O"); + continue; + } + if (property.NameEquals("specversion"u8)) + { + specversion = property.Value.GetString(); + continue; + } + if (property.NameEquals("dataschema"u8)) + { + dataschema = property.Value.GetString(); + continue; + } + if (property.NameEquals("datacontenttype"u8)) + { + datacontenttype = property.Value.GetString(); + continue; + } + if (property.NameEquals("subject"u8)) + { + subject = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new CloudEvent( + id, + source, + data, + dataBase64, + type, + time, + specversion, + dataschema, + datacontenttype, + subject, + 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(CloudEvent)} does not support writing '{options.Format}' format."); + } + } + + CloudEvent 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 DeserializeCloudEvent(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(CloudEvent)} 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 CloudEvent FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeCloudEvent(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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/CloudEvent.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/CloudEvent.cs new file mode 100644 index 000000000000..6d49af6075dd --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/CloudEvent.cs @@ -0,0 +1,164 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.Messaging.EventGrid.Namespaces +{ + /// Properties of an event published to an Azure Messaging EventGrid Namespace topic using the CloudEvent 1.0 Schema. + internal partial class CloudEvent + { + /// + /// 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 identifier for the event. The combination of id and source must be unique for each distinct event. + /// Identifies the context in which an event happened. The combination of id and source must be unique for each distinct event. + /// Type of event related to the originating occurrence. + /// The version of the CloudEvents specification which the event uses. + /// , , or is null. + public CloudEvent(string id, string source, string type, string specversion) + { + Argument.AssertNotNull(id, nameof(id)); + Argument.AssertNotNull(source, nameof(source)); + Argument.AssertNotNull(type, nameof(type)); + Argument.AssertNotNull(specversion, nameof(specversion)); + + Id = id; + Source = source; + Type = type; + Specversion = specversion; + } + + /// Initializes a new instance of . + /// An identifier for the event. The combination of id and source must be unique for each distinct event. + /// Identifies the context in which an event happened. The combination of id and source must be unique for each distinct event. + /// Event data specific to the event type. + /// Event data specific to the event type, encoded as a base64 string. + /// Type of event related to the originating occurrence. + /// The time (in UTC) the event was generated, in RFC3339 format. + /// The version of the CloudEvents specification which the event uses. + /// Identifies the schema that data adheres to. + /// Content type of data value. + /// This describes the subject of the event in the context of the event producer (identified by source). + /// Keeps track of any properties unknown to the library. + internal CloudEvent(string id, string source, BinaryData data, BinaryData dataBase64, string type, DateTimeOffset? time, string specversion, string dataschema, string datacontenttype, string subject, IDictionary serializedAdditionalRawData) + { + Id = id; + Source = source; + Data = data; + DataBase64 = dataBase64; + Type = type; + Time = time; + Specversion = specversion; + Dataschema = dataschema; + Datacontenttype = datacontenttype; + Subject = subject; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal CloudEvent() + { + } + + /// An identifier for the event. The combination of id and source must be unique for each distinct event. + public string Id { get; set; } + /// Identifies the context in which an event happened. The combination of id and source must be unique for each distinct event. + public string Source { get; set; } + /// + /// Event data specific to the event type. + /// + /// 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 Data { get; set; } + /// + /// Event data specific to the event type, encoded as a base64 string. + /// + /// To assign a byte[] to this property use . + /// The byte[] will be serialized to a Base64 encoded string. + /// + /// + /// Examples: + /// + /// + /// BinaryData.FromBytes(new byte[] { 1, 2, 3 }) + /// Creates a payload of "AQID". + /// + /// + /// + /// + public BinaryData DataBase64 { get; set; } + /// Type of event related to the originating occurrence. + public string Type { get; set; } + /// The time (in UTC) the event was generated, in RFC3339 format. + public DateTimeOffset? Time { get; set; } + /// The version of the CloudEvents specification which the event uses. + public string Specversion { get; set; } + /// Identifies the schema that data adheres to. + public string Dataschema { get; set; } + /// Content type of data value. + public string Datacontenttype { get; set; } + /// This describes the subject of the event in the context of the event producer (identified by source). + public string Subject { get; set; } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/EventGridReceiverClient.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/EventGridReceiverClient.cs new file mode 100644 index 000000000000..43b45c5c3811 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/EventGridReceiverClient.cs @@ -0,0 +1,840 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.Messaging.EventGrid.Namespaces +{ + // Data plane generated client. + /// The EventGridReceiver service client. + public partial class EventGridReceiverClient + { + private const string AuthorizationHeader = "Authorization"; + private readonly AzureKeyCredential _keyCredential; + private const string AuthorizationApiKeyPrefix = "SharedAccessKey"; + private static readonly string[] AuthorizationScopes = new string[] { "https://eventgrid.azure.net/.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 EventGridReceiverClient for mocking. + protected EventGridReceiverClient() + { + } + + /// Initializes a new instance of EventGridReceiverClient. + /// The host name of the namespace, e.g. namespaceName1.westus-1.eventgrid.azure.net. + /// A credential used to authenticate to an Azure Service. + /// or is null. + public EventGridReceiverClient(Uri endpoint, AzureKeyCredential credential) : this(endpoint, credential, new AzureMessagingEventGridNamespacesClientOptions()) + { + } + + /// Initializes a new instance of EventGridReceiverClient. + /// The host name of the namespace, e.g. namespaceName1.westus-1.eventgrid.azure.net. + /// A credential used to authenticate to an Azure Service. + /// or is null. + public EventGridReceiverClient(Uri endpoint, TokenCredential credential) : this(endpoint, credential, new AzureMessagingEventGridNamespacesClientOptions()) + { + } + + /// Initializes a new instance of EventGridReceiverClient. + /// The host name of the namespace, e.g. namespaceName1.westus-1.eventgrid.azure.net. + /// A credential used to authenticate to an Azure Service. + /// The options for configuring the client. + /// or is null. + public EventGridReceiverClient(Uri endpoint, AzureKeyCredential credential, AzureMessagingEventGridNamespacesClientOptions options) + { + Argument.AssertNotNull(endpoint, nameof(endpoint)); + Argument.AssertNotNull(credential, nameof(credential)); + options ??= new AzureMessagingEventGridNamespacesClientOptions(); + + ClientDiagnostics = new ClientDiagnostics(options, true); + _keyCredential = credential; + _pipeline = HttpPipelineBuilder.Build(options, Array.Empty(), new HttpPipelinePolicy[] { new AzureKeyCredentialPolicy(_keyCredential, AuthorizationHeader, AuthorizationApiKeyPrefix) }, new ResponseClassifier()); + _endpoint = endpoint; + _apiVersion = options.Version; + } + + /// Initializes a new instance of EventGridReceiverClient. + /// The host name of the namespace, e.g. namespaceName1.westus-1.eventgrid.azure.net. + /// A credential used to authenticate to an Azure Service. + /// The options for configuring the client. + /// or is null. + public EventGridReceiverClient(Uri endpoint, TokenCredential credential, AzureMessagingEventGridNamespacesClientOptions options) + { + Argument.AssertNotNull(endpoint, nameof(endpoint)); + Argument.AssertNotNull(credential, nameof(credential)); + options ??= new AzureMessagingEventGridNamespacesClientOptions(); + + 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; + } + + /// Receive a batch of Cloud Events from a subscription. + /// Topic Name. + /// Event Subscription Name. + /// Max Events count to be received. Minimum value is 1, while maximum value is 100 events. If not specified, the default value is 1. + /// Max wait time value for receive operation in Seconds. It is the time in seconds that the server approximately waits for the availability of an event and responds to the request. If an event is available, the broker responds immediately to the client. Minimum value is 10 seconds, while maximum value is 120 seconds. If not specified, the default value is 60 seconds. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + internal virtual async Task> ReceiveAsync(string topicName, string eventSubscriptionName, int? maxEvents = null, TimeSpan? maxWaitTime = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await ReceiveAsync(topicName, eventSubscriptionName, maxEvents, maxWaitTime, context).ConfigureAwait(false); + return Response.FromValue(ReceiveResult.FromResponse(response), response); + } + + /// Receive a batch of Cloud Events from a subscription. + /// Topic Name. + /// Event Subscription Name. + /// Max Events count to be received. Minimum value is 1, while maximum value is 100 events. If not specified, the default value is 1. + /// Max wait time value for receive operation in Seconds. It is the time in seconds that the server approximately waits for the availability of an event and responds to the request. If an event is available, the broker responds immediately to the client. Minimum value is 10 seconds, while maximum value is 120 seconds. If not specified, the default value is 60 seconds. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + internal virtual Response Receive(string topicName, string eventSubscriptionName, int? maxEvents = null, TimeSpan? maxWaitTime = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + + RequestContext context = FromCancellationToken(cancellationToken); + Response response = Receive(topicName, eventSubscriptionName, maxEvents, maxWaitTime, context); + return Response.FromValue(ReceiveResult.FromResponse(response), response); + } + + /// + /// [Protocol Method] Receive a batch of Cloud Events from a subscription. + /// + /// + /// + /// 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. + /// + /// + /// + /// + /// Topic Name. + /// Event Subscription Name. + /// Max Events count to be received. Minimum value is 1, while maximum value is 100 events. If not specified, the default value is 1. + /// Max wait time value for receive operation in Seconds. It is the time in seconds that the server approximately waits for the availability of an event and responds to the request. If an event is available, the broker responds immediately to the client. Minimum value is 10 seconds, while maximum value is 120 seconds. If not specified, the default value is 60 seconds. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual async Task ReceiveAsync(string topicName, string eventSubscriptionName, int? maxEvents, TimeSpan? maxWaitTime, RequestContext context) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + + using var scope = ClientDiagnostics.CreateScope("EventGridReceiverClient.Receive"); + scope.Start(); + try + { + using HttpMessage message = CreateReceiveRequest(topicName, eventSubscriptionName, maxEvents, maxWaitTime, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Receive a batch of Cloud Events from a subscription. + /// + /// + /// + /// 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. + /// + /// + /// + /// + /// Topic Name. + /// Event Subscription Name. + /// Max Events count to be received. Minimum value is 1, while maximum value is 100 events. If not specified, the default value is 1. + /// Max wait time value for receive operation in Seconds. It is the time in seconds that the server approximately waits for the availability of an event and responds to the request. If an event is available, the broker responds immediately to the client. Minimum value is 10 seconds, while maximum value is 120 seconds. If not specified, the default value is 60 seconds. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual Response Receive(string topicName, string eventSubscriptionName, int? maxEvents, TimeSpan? maxWaitTime, RequestContext context) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + + using var scope = ClientDiagnostics.CreateScope("EventGridReceiverClient.Receive"); + scope.Start(); + try + { + using HttpMessage message = CreateReceiveRequest(topicName, eventSubscriptionName, maxEvents, maxWaitTime, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Acknowledge a batch of Cloud Events. The response will include the set of successfully acknowledged lock tokens, along with other failed lock tokens with their corresponding error information. Successfully acknowledged events will no longer be available to be received by any consumer. + /// Topic Name. + /// Event Subscription Name. + /// Array of lock tokens. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + internal virtual async Task> AcknowledgeAsync(string topicName, string eventSubscriptionName, IEnumerable lockTokens, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + Argument.AssertNotNull(lockTokens, nameof(lockTokens)); + + AcknowledgeRequest acknowledgeRequest = new AcknowledgeRequest(lockTokens.ToList(), null); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await AcknowledgeAsync(topicName, eventSubscriptionName, acknowledgeRequest.ToRequestContent(), context).ConfigureAwait(false); + return Response.FromValue(AcknowledgeResult.FromResponse(response), response); + } + + /// Acknowledge a batch of Cloud Events. The response will include the set of successfully acknowledged lock tokens, along with other failed lock tokens with their corresponding error information. Successfully acknowledged events will no longer be available to be received by any consumer. + /// Topic Name. + /// Event Subscription Name. + /// Array of lock tokens. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + internal virtual Response Acknowledge(string topicName, string eventSubscriptionName, IEnumerable lockTokens, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + Argument.AssertNotNull(lockTokens, nameof(lockTokens)); + + AcknowledgeRequest acknowledgeRequest = new AcknowledgeRequest(lockTokens.ToList(), null); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = Acknowledge(topicName, eventSubscriptionName, acknowledgeRequest.ToRequestContent(), context); + return Response.FromValue(AcknowledgeResult.FromResponse(response), response); + } + + /// + /// [Protocol Method] Acknowledge a batch of Cloud Events. The response will include the set of successfully acknowledged lock tokens, along with other failed lock tokens with their corresponding error information. Successfully acknowledged events will no longer be available to be received by any consumer. + /// + /// + /// + /// 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. + /// + /// + /// + /// + /// Topic Name. + /// Event Subscription Name. + /// The content to send as the body of the request. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual async Task AcknowledgeAsync(string topicName, string eventSubscriptionName, RequestContent content, RequestContext context = null) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("EventGridReceiverClient.Acknowledge"); + scope.Start(); + try + { + using HttpMessage message = CreateAcknowledgeRequest(topicName, eventSubscriptionName, content, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Acknowledge a batch of Cloud Events. The response will include the set of successfully acknowledged lock tokens, along with other failed lock tokens with their corresponding error information. Successfully acknowledged events will no longer be available to be received by any consumer. + /// + /// + /// + /// 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. + /// + /// + /// + /// + /// Topic Name. + /// Event Subscription Name. + /// The content to send as the body of the request. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual Response Acknowledge(string topicName, string eventSubscriptionName, RequestContent content, RequestContext context = null) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("EventGridReceiverClient.Acknowledge"); + scope.Start(); + try + { + using HttpMessage message = CreateAcknowledgeRequest(topicName, eventSubscriptionName, content, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Release a batch of Cloud Events. The response will include the set of successfully released lock tokens, along with other failed lock tokens with their corresponding error information. Successfully released events can be received by consumers. + /// Topic Name. + /// Event Subscription Name. + /// Array of lock tokens. + /// Release cloud events with the specified delay in seconds. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + internal virtual async Task> ReleaseAsync(string topicName, string eventSubscriptionName, IEnumerable lockTokens, ReleaseDelay? releaseDelayInSeconds = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + Argument.AssertNotNull(lockTokens, nameof(lockTokens)); + + ReleaseRequest releaseRequest = new ReleaseRequest(lockTokens.ToList(), null); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await ReleaseAsync(topicName, eventSubscriptionName, releaseRequest.ToRequestContent(), releaseDelayInSeconds?.ToString(), context).ConfigureAwait(false); + return Response.FromValue(ReleaseResult.FromResponse(response), response); + } + + /// Release a batch of Cloud Events. The response will include the set of successfully released lock tokens, along with other failed lock tokens with their corresponding error information. Successfully released events can be received by consumers. + /// Topic Name. + /// Event Subscription Name. + /// Array of lock tokens. + /// Release cloud events with the specified delay in seconds. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + internal virtual Response Release(string topicName, string eventSubscriptionName, IEnumerable lockTokens, ReleaseDelay? releaseDelayInSeconds = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + Argument.AssertNotNull(lockTokens, nameof(lockTokens)); + + ReleaseRequest releaseRequest = new ReleaseRequest(lockTokens.ToList(), null); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = Release(topicName, eventSubscriptionName, releaseRequest.ToRequestContent(), releaseDelayInSeconds?.ToString(), context); + return Response.FromValue(ReleaseResult.FromResponse(response), response); + } + + /// + /// [Protocol Method] Release a batch of Cloud Events. The response will include the set of successfully released lock tokens, along with other failed lock tokens with their corresponding error information. Successfully released events can be received by consumers. + /// + /// + /// + /// 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. + /// + /// + /// + /// + /// Topic Name. + /// Event Subscription Name. + /// The content to send as the body of the request. + /// Release cloud events with the specified delay in seconds. Allowed values: "0" | "10" | "60" | "600" | "3600". + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual async Task ReleaseAsync(string topicName, string eventSubscriptionName, RequestContent content, string releaseDelayInSeconds = null, RequestContext context = null) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("EventGridReceiverClient.Release"); + scope.Start(); + try + { + using HttpMessage message = CreateReleaseRequest(topicName, eventSubscriptionName, content, releaseDelayInSeconds, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Release a batch of Cloud Events. The response will include the set of successfully released lock tokens, along with other failed lock tokens with their corresponding error information. Successfully released events can be received by consumers. + /// + /// + /// + /// 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. + /// + /// + /// + /// + /// Topic Name. + /// Event Subscription Name. + /// The content to send as the body of the request. + /// Release cloud events with the specified delay in seconds. Allowed values: "0" | "10" | "60" | "600" | "3600". + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual Response Release(string topicName, string eventSubscriptionName, RequestContent content, string releaseDelayInSeconds = null, RequestContext context = null) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("EventGridReceiverClient.Release"); + scope.Start(); + try + { + using HttpMessage message = CreateReleaseRequest(topicName, eventSubscriptionName, content, releaseDelayInSeconds, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Reject a batch of Cloud Events. The response will include the set of successfully rejected lock tokens, along with other failed lock tokens with their corresponding error information. Successfully rejected events will be dead-lettered and can no longer be received by a consumer. + /// Topic Name. + /// Event Subscription Name. + /// Array of lock tokens. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + internal virtual async Task> RejectAsync(string topicName, string eventSubscriptionName, IEnumerable lockTokens, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + Argument.AssertNotNull(lockTokens, nameof(lockTokens)); + + RejectRequest rejectRequest = new RejectRequest(lockTokens.ToList(), null); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await RejectAsync(topicName, eventSubscriptionName, rejectRequest.ToRequestContent(), context).ConfigureAwait(false); + return Response.FromValue(RejectResult.FromResponse(response), response); + } + + /// Reject a batch of Cloud Events. The response will include the set of successfully rejected lock tokens, along with other failed lock tokens with their corresponding error information. Successfully rejected events will be dead-lettered and can no longer be received by a consumer. + /// Topic Name. + /// Event Subscription Name. + /// Array of lock tokens. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + internal virtual Response Reject(string topicName, string eventSubscriptionName, IEnumerable lockTokens, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + Argument.AssertNotNull(lockTokens, nameof(lockTokens)); + + RejectRequest rejectRequest = new RejectRequest(lockTokens.ToList(), null); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = Reject(topicName, eventSubscriptionName, rejectRequest.ToRequestContent(), context); + return Response.FromValue(RejectResult.FromResponse(response), response); + } + + /// + /// [Protocol Method] Reject a batch of Cloud Events. The response will include the set of successfully rejected lock tokens, along with other failed lock tokens with their corresponding error information. Successfully rejected events will be dead-lettered and can no longer be received by a consumer. + /// + /// + /// + /// 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. + /// + /// + /// + /// + /// Topic Name. + /// Event Subscription Name. + /// The content to send as the body of the request. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual async Task RejectAsync(string topicName, string eventSubscriptionName, RequestContent content, RequestContext context = null) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("EventGridReceiverClient.Reject"); + scope.Start(); + try + { + using HttpMessage message = CreateRejectRequest(topicName, eventSubscriptionName, content, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Reject a batch of Cloud Events. The response will include the set of successfully rejected lock tokens, along with other failed lock tokens with their corresponding error information. Successfully rejected events will be dead-lettered and can no longer be received by a consumer. + /// + /// + /// + /// 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. + /// + /// + /// + /// + /// Topic Name. + /// Event Subscription Name. + /// The content to send as the body of the request. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual Response Reject(string topicName, string eventSubscriptionName, RequestContent content, RequestContext context = null) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("EventGridReceiverClient.Reject"); + scope.Start(); + try + { + using HttpMessage message = CreateRejectRequest(topicName, eventSubscriptionName, content, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Renew locks for a batch of Cloud Events. The response will include the set of successfully renewed lock tokens, along with other failed lock tokens with their corresponding error information. Successfully renewed locks will ensure that the associated event is only available to the consumer that holds the renewed lock. + /// Topic Name. + /// Event Subscription Name. + /// Array of lock tokens. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + internal virtual async Task> RenewLocksAsync(string topicName, string eventSubscriptionName, IEnumerable lockTokens, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + Argument.AssertNotNull(lockTokens, nameof(lockTokens)); + + RenewLocksRequest renewLocksRequest = new RenewLocksRequest(lockTokens.ToList(), null); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await RenewLocksAsync(topicName, eventSubscriptionName, renewLocksRequest.ToRequestContent(), context).ConfigureAwait(false); + return Response.FromValue(RenewLocksResult.FromResponse(response), response); + } + + /// Renew locks for a batch of Cloud Events. The response will include the set of successfully renewed lock tokens, along with other failed lock tokens with their corresponding error information. Successfully renewed locks will ensure that the associated event is only available to the consumer that holds the renewed lock. + /// Topic Name. + /// Event Subscription Name. + /// Array of lock tokens. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + internal virtual Response RenewLocks(string topicName, string eventSubscriptionName, IEnumerable lockTokens, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + Argument.AssertNotNull(lockTokens, nameof(lockTokens)); + + RenewLocksRequest renewLocksRequest = new RenewLocksRequest(lockTokens.ToList(), null); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = RenewLocks(topicName, eventSubscriptionName, renewLocksRequest.ToRequestContent(), context); + return Response.FromValue(RenewLocksResult.FromResponse(response), response); + } + + /// + /// [Protocol Method] Renew locks for a batch of Cloud Events. The response will include the set of successfully renewed lock tokens, along with other failed lock tokens with their corresponding error information. Successfully renewed locks will ensure that the associated event is only available to the consumer that holds the renewed lock. + /// + /// + /// + /// 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. + /// + /// + /// + /// + /// Topic Name. + /// Event Subscription Name. + /// The content to send as the body of the request. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual async Task RenewLocksAsync(string topicName, string eventSubscriptionName, RequestContent content, RequestContext context = null) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("EventGridReceiverClient.RenewLocks"); + scope.Start(); + try + { + using HttpMessage message = CreateRenewLocksRequest(topicName, eventSubscriptionName, content, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Renew locks for a batch of Cloud Events. The response will include the set of successfully renewed lock tokens, along with other failed lock tokens with their corresponding error information. Successfully renewed locks will ensure that the associated event is only available to the consumer that holds the renewed lock. + /// + /// + /// + /// 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. + /// + /// + /// + /// + /// Topic Name. + /// Event Subscription Name. + /// The content to send as the body of the request. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual Response RenewLocks(string topicName, string eventSubscriptionName, RequestContent content, RequestContext context = null) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNullOrEmpty(eventSubscriptionName, nameof(eventSubscriptionName)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("EventGridReceiverClient.RenewLocks"); + scope.Start(); + try + { + using HttpMessage message = CreateRenewLocksRequest(topicName, eventSubscriptionName, content, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + internal HttpMessage CreateReceiveRequest(string topicName, string eventSubscriptionName, int? maxEvents, TimeSpan? maxWaitTime, 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("/topics/", false); + uri.AppendPath(topicName, true); + uri.AppendPath("/eventsubscriptions/", false); + uri.AppendPath(eventSubscriptionName, true); + uri.AppendPath(":receive", false); + uri.AppendQuery("api-version", _apiVersion, true); + if (maxEvents != null) + { + uri.AppendQuery("maxEvents", maxEvents.Value, true); + } + if (maxWaitTime != null) + { + uri.AppendQuery("maxWaitTime", maxWaitTime.Value, "%s", true); + } + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateAcknowledgeRequest(string topicName, string eventSubscriptionName, RequestContent content, 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("/topics/", false); + uri.AppendPath(topicName, true); + uri.AppendPath("/eventsubscriptions/", false); + uri.AppendPath(eventSubscriptionName, true); + uri.AppendPath(":acknowledge", false); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + request.Headers.Add("Content-Type", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateReleaseRequest(string topicName, string eventSubscriptionName, RequestContent content, string releaseDelayInSeconds, 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("/topics/", false); + uri.AppendPath(topicName, true); + uri.AppendPath("/eventsubscriptions/", false); + uri.AppendPath(eventSubscriptionName, true); + uri.AppendPath(":release", false); + uri.AppendQuery("api-version", _apiVersion, true); + if (releaseDelayInSeconds != null) + { + uri.AppendQuery("releaseDelayInSeconds", releaseDelayInSeconds, true); + } + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + request.Headers.Add("Content-Type", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateRejectRequest(string topicName, string eventSubscriptionName, RequestContent content, 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("/topics/", false); + uri.AppendPath(topicName, true); + uri.AppendPath("/eventsubscriptions/", false); + uri.AppendPath(eventSubscriptionName, true); + uri.AppendPath(":reject", false); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + request.Headers.Add("Content-Type", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateRenewLocksRequest(string topicName, string eventSubscriptionName, RequestContent content, 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("/topics/", false); + uri.AppendPath(topicName, true); + uri.AppendPath("/eventsubscriptions/", false); + uri.AppendPath(eventSubscriptionName, true); + uri.AppendPath(":renewLock", false); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + 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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/EventGridSenderClient.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/EventGridSenderClient.cs new file mode 100644 index 000000000000..7823b6e8d6e3 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/EventGridSenderClient.cs @@ -0,0 +1,375 @@ +// 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.Core; +using Azure.Core.Pipeline; + +namespace Azure.Messaging.EventGrid.Namespaces +{ + // Data plane generated client. + /// The EventGridSender service client. + public partial class EventGridSenderClient + { + private const string AuthorizationHeader = "Authorization"; + private readonly AzureKeyCredential _keyCredential; + private const string AuthorizationApiKeyPrefix = "SharedAccessKey"; + private static readonly string[] AuthorizationScopes = new string[] { "https://eventgrid.azure.net/.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 EventGridSenderClient for mocking. + protected EventGridSenderClient() + { + } + + /// Initializes a new instance of EventGridSenderClient. + /// The host name of the namespace, e.g. namespaceName1.westus-1.eventgrid.azure.net. + /// A credential used to authenticate to an Azure Service. + /// or is null. + public EventGridSenderClient(Uri endpoint, AzureKeyCredential credential) : this(endpoint, credential, new AzureMessagingEventGridNamespacesClientOptions()) + { + } + + /// Initializes a new instance of EventGridSenderClient. + /// The host name of the namespace, e.g. namespaceName1.westus-1.eventgrid.azure.net. + /// A credential used to authenticate to an Azure Service. + /// or is null. + public EventGridSenderClient(Uri endpoint, TokenCredential credential) : this(endpoint, credential, new AzureMessagingEventGridNamespacesClientOptions()) + { + } + + /// Initializes a new instance of EventGridSenderClient. + /// The host name of the namespace, e.g. namespaceName1.westus-1.eventgrid.azure.net. + /// A credential used to authenticate to an Azure Service. + /// The options for configuring the client. + /// or is null. + public EventGridSenderClient(Uri endpoint, AzureKeyCredential credential, AzureMessagingEventGridNamespacesClientOptions options) + { + Argument.AssertNotNull(endpoint, nameof(endpoint)); + Argument.AssertNotNull(credential, nameof(credential)); + options ??= new AzureMessagingEventGridNamespacesClientOptions(); + + ClientDiagnostics = new ClientDiagnostics(options, true); + _keyCredential = credential; + _pipeline = HttpPipelineBuilder.Build(options, Array.Empty(), new HttpPipelinePolicy[] { new AzureKeyCredentialPolicy(_keyCredential, AuthorizationHeader, AuthorizationApiKeyPrefix) }, new ResponseClassifier()); + _endpoint = endpoint; + _apiVersion = options.Version; + } + + /// Initializes a new instance of EventGridSenderClient. + /// The host name of the namespace, e.g. namespaceName1.westus-1.eventgrid.azure.net. + /// A credential used to authenticate to an Azure Service. + /// The options for configuring the client. + /// or is null. + public EventGridSenderClient(Uri endpoint, TokenCredential credential, AzureMessagingEventGridNamespacesClientOptions options) + { + Argument.AssertNotNull(endpoint, nameof(endpoint)); + Argument.AssertNotNull(credential, nameof(credential)); + options ??= new AzureMessagingEventGridNamespacesClientOptions(); + + 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; + } + + /// Publish a single Cloud Event to a namespace topic. + /// Topic Name. + /// Single Cloud Event being published. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + internal virtual async Task> SendAsync(string topicName, CloudEvent @event, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNull(@event, nameof(@event)); + + using RequestContent content = @event.ToRequestContent(); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await SendAsync(topicName, content, context).ConfigureAwait(false); + return Response.FromValue(PublishResult.FromResponse(response), response); + } + + /// Publish a single Cloud Event to a namespace topic. + /// Topic Name. + /// Single Cloud Event being published. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + internal virtual Response Send(string topicName, CloudEvent @event, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNull(@event, nameof(@event)); + + using RequestContent content = @event.ToRequestContent(); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = Send(topicName, content, context); + return Response.FromValue(PublishResult.FromResponse(response), response); + } + + /// + /// [Protocol Method] Publish a single Cloud Event to a namespace topic. + /// + /// + /// + /// 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. + /// + /// + /// + /// + /// Topic Name. + /// The content to send as the body of the request. + /// 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. + internal virtual async Task SendAsync(string topicName, RequestContent content, RequestContext context = null) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("EventGridSenderClient.Send"); + scope.Start(); + try + { + using HttpMessage message = CreateSendRequest(topicName, content, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Publish a single Cloud Event to a namespace topic. + /// + /// + /// + /// 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. + /// + /// + /// + /// + /// Topic Name. + /// The content to send as the body of the request. + /// 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. + internal virtual Response Send(string topicName, RequestContent content, RequestContext context = null) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("EventGridSenderClient.Send"); + scope.Start(); + try + { + using HttpMessage message = CreateSendRequest(topicName, content, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Publish a batch of Cloud Events to a namespace topic. + /// Topic Name. + /// Array of Cloud Events being published. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + internal virtual async Task> SendEventsAsync(string topicName, IEnumerable events, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNull(events, nameof(events)); + + using RequestContent content = RequestContentHelper.FromEnumerable(events); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await SendEventsAsync(topicName, content, context).ConfigureAwait(false); + return Response.FromValue(PublishResult.FromResponse(response), response); + } + + /// Publish a batch of Cloud Events to a namespace topic. + /// Topic Name. + /// Array of Cloud Events being published. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + internal virtual Response SendEvents(string topicName, IEnumerable events, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNull(events, nameof(events)); + + using RequestContent content = RequestContentHelper.FromEnumerable(events); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = SendEvents(topicName, content, context); + return Response.FromValue(PublishResult.FromResponse(response), response); + } + + /// + /// [Protocol Method] Publish a batch of Cloud Events to a namespace topic. + /// + /// + /// + /// 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. + /// + /// + /// + /// + /// Topic Name. + /// The content to send as the body of the request. + /// 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. + internal virtual async Task SendEventsAsync(string topicName, RequestContent content, RequestContext context = null) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("EventGridSenderClient.SendEvents"); + scope.Start(); + try + { + using HttpMessage message = CreateSendEventsRequest(topicName, content, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Publish a batch of Cloud Events to a namespace topic. + /// + /// + /// + /// 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. + /// + /// + /// + /// + /// Topic Name. + /// The content to send as the body of the request. + /// 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. + internal virtual Response SendEvents(string topicName, RequestContent content, RequestContext context = null) + { + Argument.AssertNotNullOrEmpty(topicName, nameof(topicName)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("EventGridSenderClient.SendEvents"); + scope.Start(); + try + { + using HttpMessage message = CreateSendEventsRequest(topicName, content, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + internal HttpMessage CreateSendRequest(string topicName, RequestContent content, 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("/topics/", false); + uri.AppendPath(topicName, true); + uri.AppendPath(":publish", false); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + request.Headers.Add("Content-Type", "application/cloudevents+json; charset=utf-8"); + request.Content = content; + return message; + } + + internal HttpMessage CreateSendEventsRequest(string topicName, RequestContent content, 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("/topics/", false); + uri.AppendPath(topicName, true); + uri.AppendPath(":publish", false); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + request.Headers.Add("Content-Type", "application/cloudevents-batch+json; charset=utf-8"); + 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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/FailedLockToken.Serialization.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/FailedLockToken.Serialization.cs new file mode 100644 index 000000000000..53dc10fd5f4e --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/FailedLockToken.Serialization.cs @@ -0,0 +1,150 @@ +// 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.Messaging.EventGrid.Namespaces +{ + public partial class FailedLockToken : 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(FailedLockToken)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("lockToken"u8); + writer.WriteStringValue(LockToken); + 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 + } + } + } + + FailedLockToken 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(FailedLockToken)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeFailedLockToken(document.RootElement, options); + } + + internal static FailedLockToken DeserializeFailedLockToken(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string lockToken = default; + ResponseError error = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("lockToken"u8)) + { + lockToken = property.Value.GetString(); + continue; + } + 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 FailedLockToken(lockToken, 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(FailedLockToken)} does not support writing '{options.Format}' format."); + } + } + + FailedLockToken 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 DeserializeFailedLockToken(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(FailedLockToken)} 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 FailedLockToken FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeFailedLockToken(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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/FailedLockToken.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/FailedLockToken.cs new file mode 100644 index 000000000000..a098a39a8a15 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/FailedLockToken.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.Messaging.EventGrid.Namespaces +{ + /// Failed LockToken information. + public partial class FailedLockToken + { + /// + /// 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 lock token of an entry in the request. + /// Error information of the failed operation result for the lock token in the request. + /// or is null. + internal FailedLockToken(string lockToken, ResponseError error) + { + Argument.AssertNotNull(lockToken, nameof(lockToken)); + Argument.AssertNotNull(error, nameof(error)); + + LockToken = lockToken; + Error = error; + } + + /// Initializes a new instance of . + /// The lock token of an entry in the request. + /// Error information of the failed operation result for the lock token in the request. + /// Keeps track of any properties unknown to the library. + internal FailedLockToken(string lockToken, ResponseError error, IDictionary serializedAdditionalRawData) + { + LockToken = lockToken; + Error = error; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal FailedLockToken() + { + } + + /// The lock token of an entry in the request. + public string LockToken { get; } + /// Error information of the failed operation result for the lock token in the request. + public ResponseError Error { get; } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/Argument.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/Argument.cs new file mode 100644 index 000000000000..7f53b5f11f4a --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/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.Messaging.EventGrid.Namespaces +{ + 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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/ChangeTrackingDictionary.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/ChangeTrackingDictionary.cs new file mode 100644 index 000000000000..da590bd8315a --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/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.Messaging.EventGrid.Namespaces +{ + 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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/ChangeTrackingList.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/ChangeTrackingList.cs new file mode 100644 index 000000000000..86ec5baff961 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/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.Messaging.EventGrid.Namespaces +{ + 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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/ModelSerializationExtensions.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/ModelSerializationExtensions.cs new file mode 100644 index 000000000000..3de82e7093c3 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/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.Messaging.EventGrid.Namespaces +{ + 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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/Optional.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/Optional.cs new file mode 100644 index 000000000000..9b1683fa02e9 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/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.Messaging.EventGrid.Namespaces +{ + 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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/RequestContentHelper.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/RequestContentHelper.cs new file mode 100644 index 000000000000..3a14979d6b97 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/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 Azure.Messaging.EventGrid.Namespaces +{ + 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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/Utf8JsonRequestContent.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/Internal/Utf8JsonRequestContent.cs new file mode 100644 index 000000000000..78323219e281 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/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.Messaging.EventGrid.Namespaces +{ + 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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/MessagingEventGridNamespacesClientBuilderExtensions.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/MessagingEventGridNamespacesClientBuilderExtensions.cs new file mode 100644 index 000000000000..e710c7ce03c9 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/MessagingEventGridNamespacesClientBuilderExtensions.cs @@ -0,0 +1,73 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure; +using Azure.Core.Extensions; +using Azure.Messaging.EventGrid.Namespaces; + +namespace Microsoft.Extensions.Azure +{ + /// Extension methods to add , to client builder. + public static partial class MessagingEventGridNamespacesClientBuilderExtensions + { + /// Registers a instance. + /// The builder to register with. + /// The host name of the namespace, e.g. namespaceName1.westus-1.eventgrid.azure.net. + /// A credential used to authenticate to an Azure Service. + public static IAzureClientBuilder AddEventGridSenderClient(this TBuilder builder, Uri endpoint, AzureKeyCredential credential) + where TBuilder : IAzureClientFactoryBuilder + { + return builder.RegisterClientFactory((options) => new EventGridSenderClient(endpoint, credential, options)); + } + + /// Registers a instance. + /// The builder to register with. + /// The host name of the namespace, e.g. namespaceName1.westus-1.eventgrid.azure.net. + public static IAzureClientBuilder AddEventGridSenderClient(this TBuilder builder, Uri endpoint) + where TBuilder : IAzureClientFactoryBuilderWithCredential + { + return builder.RegisterClientFactory((options, cred) => new EventGridSenderClient(endpoint, cred, options)); + } + + /// Registers a instance. + /// The builder to register with. + /// The host name of the namespace, e.g. namespaceName1.westus-1.eventgrid.azure.net. + /// A credential used to authenticate to an Azure Service. + public static IAzureClientBuilder AddEventGridReceiverClient(this TBuilder builder, Uri endpoint, AzureKeyCredential credential) + where TBuilder : IAzureClientFactoryBuilder + { + return builder.RegisterClientFactory((options) => new EventGridReceiverClient(endpoint, credential, options)); + } + + /// Registers a instance. + /// The builder to register with. + /// The host name of the namespace, e.g. namespaceName1.westus-1.eventgrid.azure.net. + public static IAzureClientBuilder AddEventGridReceiverClient(this TBuilder builder, Uri endpoint) + where TBuilder : IAzureClientFactoryBuilderWithCredential + { + return builder.RegisterClientFactory((options, cred) => new EventGridReceiverClient(endpoint, cred, options)); + } + + /// Registers a instance. + /// The builder to register with. + /// The configuration values. + public static IAzureClientBuilder AddEventGridSenderClient(this TBuilder builder, TConfiguration configuration) + where TBuilder : IAzureClientFactoryBuilderWithConfiguration + { + return builder.RegisterClientFactory(configuration); + } + /// Registers a instance. + /// The builder to register with. + /// The configuration values. + public static IAzureClientBuilder AddEventGridReceiverClient(this TBuilder builder, TConfiguration configuration) + where TBuilder : IAzureClientFactoryBuilderWithConfiguration + { + return builder.RegisterClientFactory(configuration); + } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/MessagingEventGridNamespacesModelFactory.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/MessagingEventGridNamespacesModelFactory.cs new file mode 100644 index 000000000000..f78936f09961 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/MessagingEventGridNamespacesModelFactory.cs @@ -0,0 +1,73 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Collections.Generic; +using System.Linq; + +namespace Azure.Messaging.EventGrid.Namespaces +{ + /// Model factory for models. + public static partial class MessagingEventGridNamespacesModelFactory + { + /// Initializes a new instance of . + /// Array of FailedLockToken for failed cloud events. Each FailedLockToken includes the lock token along with the related error information (namely, the error code and description). + /// Array of lock tokens for the successfully acknowledged cloud events. + /// A new instance for mocking. + public static AcknowledgeResult AcknowledgeResult(IEnumerable failedLockTokens = null, IEnumerable succeededLockTokens = null) + { + failedLockTokens ??= new List(); + succeededLockTokens ??= new List(); + + return new AcknowledgeResult(failedLockTokens?.ToList(), succeededLockTokens?.ToList(), serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The lock token of an entry in the request. + /// Error information of the failed operation result for the lock token in the request. + /// A new instance for mocking. + public static FailedLockToken FailedLockToken(string lockToken = null, ResponseError error = null) + { + return new FailedLockToken(lockToken, error, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// Array of FailedLockToken for failed cloud events. Each FailedLockToken includes the lock token along with the related error information (namely, the error code and description). + /// Array of lock tokens for the successfully released cloud events. + /// A new instance for mocking. + public static ReleaseResult ReleaseResult(IEnumerable failedLockTokens = null, IEnumerable succeededLockTokens = null) + { + failedLockTokens ??= new List(); + succeededLockTokens ??= new List(); + + return new ReleaseResult(failedLockTokens?.ToList(), succeededLockTokens?.ToList(), serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// Array of FailedLockToken for failed cloud events. Each FailedLockToken includes the lock token along with the related error information (namely, the error code and description). + /// Array of lock tokens for the successfully rejected cloud events. + /// A new instance for mocking. + public static RejectResult RejectResult(IEnumerable failedLockTokens = null, IEnumerable succeededLockTokens = null) + { + failedLockTokens ??= new List(); + succeededLockTokens ??= new List(); + + return new RejectResult(failedLockTokens?.ToList(), succeededLockTokens?.ToList(), serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// Array of FailedLockToken for failed cloud events. Each FailedLockToken includes the lock token along with the related error information (namely, the error code and description). + /// Array of lock tokens for the successfully renewed locks. + /// A new instance for mocking. + public static RenewLocksResult RenewLocksResult(IEnumerable failedLockTokens = null, IEnumerable succeededLockTokens = null) + { + failedLockTokens ??= new List(); + succeededLockTokens ??= new List(); + + return new RenewLocksResult(failedLockTokens?.ToList(), succeededLockTokens?.ToList(), serializedAdditionalRawData: null); + } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/PublishResult.Serialization.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/PublishResult.Serialization.cs new file mode 100644 index 000000000000..f7abd1ad6cf9 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/PublishResult.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.Messaging.EventGrid.Namespaces +{ + internal partial class PublishResult : 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(PublishResult)} 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 + } + } + } + + PublishResult 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(PublishResult)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializePublishResult(document.RootElement, options); + } + + internal static PublishResult DeserializePublishResult(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 PublishResult(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(PublishResult)} does not support writing '{options.Format}' format."); + } + } + + PublishResult 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 DeserializePublishResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(PublishResult)} 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 PublishResult FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializePublishResult(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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/PublishResult.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/PublishResult.cs new file mode 100644 index 000000000000..1427f94a2dbc --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/PublishResult.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.Messaging.EventGrid.Namespaces +{ + /// The result of the Publish operation. + internal partial class PublishResult + { + /// + /// 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 PublishResult() + { + } + + /// Initializes a new instance of . + /// Keeps track of any properties unknown to the library. + internal PublishResult(IDictionary serializedAdditionalRawData) + { + _serializedAdditionalRawData = serializedAdditionalRawData; + } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReceiveDetails.Serialization.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReceiveDetails.Serialization.cs new file mode 100644 index 000000000000..6b812654859c --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReceiveDetails.Serialization.cs @@ -0,0 +1,150 @@ +// 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.Messaging.EventGrid.Namespaces +{ + internal partial class ReceiveDetails : 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(ReceiveDetails)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("brokerProperties"u8); + writer.WriteObjectValue(BrokerProperties, options); + writer.WritePropertyName("event"u8); + writer.WriteObjectValue(Event, 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 + } + } + } + + ReceiveDetails 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(ReceiveDetails)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeReceiveDetails(document.RootElement, options); + } + + internal static ReceiveDetails DeserializeReceiveDetails(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + BrokerProperties brokerProperties = default; + CloudEvent @event = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("brokerProperties"u8)) + { + brokerProperties = BrokerProperties.DeserializeBrokerProperties(property.Value, options); + continue; + } + if (property.NameEquals("event"u8)) + { + @event = CloudEvent.DeserializeCloudEvent(property.Value, options); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ReceiveDetails(brokerProperties, @event, 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(ReceiveDetails)} does not support writing '{options.Format}' format."); + } + } + + ReceiveDetails 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 DeserializeReceiveDetails(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ReceiveDetails)} 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 ReceiveDetails FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeReceiveDetails(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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReceiveDetails.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReceiveDetails.cs new file mode 100644 index 000000000000..13b99065b26d --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReceiveDetails.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.Messaging.EventGrid.Namespaces +{ + /// Receive operation details per Cloud Event. + internal partial class ReceiveDetails + { + /// + /// 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 Event Broker details. + /// Cloud Event details. + /// or is null. + internal ReceiveDetails(BrokerProperties brokerProperties, CloudEvent @event) + { + Argument.AssertNotNull(brokerProperties, nameof(brokerProperties)); + Argument.AssertNotNull(@event, nameof(@event)); + + BrokerProperties = brokerProperties; + Event = @event; + } + + /// Initializes a new instance of . + /// The Event Broker details. + /// Cloud Event details. + /// Keeps track of any properties unknown to the library. + internal ReceiveDetails(BrokerProperties brokerProperties, CloudEvent @event, IDictionary serializedAdditionalRawData) + { + BrokerProperties = brokerProperties; + Event = @event; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal ReceiveDetails() + { + } + + /// The Event Broker details. + public BrokerProperties BrokerProperties { get; } + /// Cloud Event details. + public CloudEvent Event { get; } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReceiveResult.Serialization.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReceiveResult.Serialization.cs new file mode 100644 index 000000000000..a7049104062b --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReceiveResult.Serialization.cs @@ -0,0 +1,152 @@ +// 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.Messaging.EventGrid.Namespaces +{ + internal partial class ReceiveResult : 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(ReceiveResult)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (var item in Details) + { + 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 + } + } + } + + ReceiveResult 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(ReceiveResult)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeReceiveResult(document.RootElement, options); + } + + internal static ReceiveResult DeserializeReceiveResult(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList value = 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(ReceiveDetails.DeserializeReceiveDetails(item, options)); + } + value = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ReceiveResult(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(ReceiveResult)} does not support writing '{options.Format}' format."); + } + } + + ReceiveResult 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 DeserializeReceiveResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ReceiveResult)} 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 ReceiveResult FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeReceiveResult(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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReceiveResult.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReceiveResult.cs new file mode 100644 index 000000000000..394c066f5f88 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReceiveResult.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 Azure.Messaging.EventGrid.Namespaces +{ + /// Details of the Receive operation response. + internal partial class ReceiveResult + { + /// + /// 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 . + /// Array of receive responses, one per cloud event. + /// is null. + internal ReceiveResult(IEnumerable details) + { + Argument.AssertNotNull(details, nameof(details)); + + Details = details.ToList(); + } + + /// Initializes a new instance of . + /// Array of receive responses, one per cloud event. + /// Keeps track of any properties unknown to the library. + internal ReceiveResult(IReadOnlyList details, IDictionary serializedAdditionalRawData) + { + Details = details; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal ReceiveResult() + { + } + + /// Array of receive responses, one per cloud event. + public IReadOnlyList Details { get; } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RejectRequest.Serialization.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RejectRequest.Serialization.cs new file mode 100644 index 000000000000..2d07ad9dc94d --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RejectRequest.Serialization.cs @@ -0,0 +1,152 @@ +// 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.Messaging.EventGrid.Namespaces +{ + internal partial class RejectRequest : 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(RejectRequest)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("lockTokens"u8); + writer.WriteStartArray(); + foreach (var item in LockTokens) + { + 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 + } + } + } + + RejectRequest 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(RejectRequest)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRejectRequest(document.RootElement, options); + } + + internal static RejectRequest DeserializeRejectRequest(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList lockTokens = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("lockTokens"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + lockTokens = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RejectRequest(lockTokens, 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(RejectRequest)} does not support writing '{options.Format}' format."); + } + } + + RejectRequest 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 DeserializeRejectRequest(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RejectRequest)} 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 RejectRequest FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRejectRequest(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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RejectRequest.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RejectRequest.cs new file mode 100644 index 000000000000..e64cfb88fa65 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RejectRequest.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 Azure.Messaging.EventGrid.Namespaces +{ + /// The RejectRequest. + internal partial class RejectRequest + { + /// + /// 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 . + /// Array of lock tokens. + /// is null. + internal RejectRequest(IEnumerable lockTokens) + { + Argument.AssertNotNull(lockTokens, nameof(lockTokens)); + + LockTokens = lockTokens.ToList(); + } + + /// Initializes a new instance of . + /// Array of lock tokens. + /// Keeps track of any properties unknown to the library. + internal RejectRequest(IReadOnlyList lockTokens, IDictionary serializedAdditionalRawData) + { + LockTokens = lockTokens; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal RejectRequest() + { + } + + /// Array of lock tokens. + public IReadOnlyList LockTokens { get; } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RejectResult.Serialization.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RejectResult.Serialization.cs new file mode 100644 index 000000000000..d69dd1ddc4cb --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RejectResult.Serialization.cs @@ -0,0 +1,170 @@ +// 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.Messaging.EventGrid.Namespaces +{ + public partial class RejectResult : 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(RejectResult)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("failedLockTokens"u8); + writer.WriteStartArray(); + foreach (var item in FailedLockTokens) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + writer.WritePropertyName("succeededLockTokens"u8); + writer.WriteStartArray(); + foreach (var item in SucceededLockTokens) + { + 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 + } + } + } + + RejectResult 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(RejectResult)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRejectResult(document.RootElement, options); + } + + internal static RejectResult DeserializeRejectResult(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList failedLockTokens = default; + IReadOnlyList succeededLockTokens = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("failedLockTokens"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(FailedLockToken.DeserializeFailedLockToken(item, options)); + } + failedLockTokens = array; + continue; + } + if (property.NameEquals("succeededLockTokens"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + succeededLockTokens = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RejectResult(failedLockTokens, succeededLockTokens, 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(RejectResult)} does not support writing '{options.Format}' format."); + } + } + + RejectResult 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 DeserializeRejectResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RejectResult)} 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 RejectResult FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRejectResult(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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RejectResult.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RejectResult.cs new file mode 100644 index 000000000000..1b8a06457430 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RejectResult.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 Azure.Messaging.EventGrid.Namespaces +{ + /// The result of the Reject operation. + public partial class RejectResult + { + /// + /// 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 . + /// Array of FailedLockToken for failed cloud events. Each FailedLockToken includes the lock token along with the related error information (namely, the error code and description). + /// Array of lock tokens for the successfully rejected cloud events. + /// or is null. + internal RejectResult(IEnumerable failedLockTokens, IEnumerable succeededLockTokens) + { + Argument.AssertNotNull(failedLockTokens, nameof(failedLockTokens)); + Argument.AssertNotNull(succeededLockTokens, nameof(succeededLockTokens)); + + FailedLockTokens = failedLockTokens.ToList(); + SucceededLockTokens = succeededLockTokens.ToList(); + } + + /// Initializes a new instance of . + /// Array of FailedLockToken for failed cloud events. Each FailedLockToken includes the lock token along with the related error information (namely, the error code and description). + /// Array of lock tokens for the successfully rejected cloud events. + /// Keeps track of any properties unknown to the library. + internal RejectResult(IReadOnlyList failedLockTokens, IReadOnlyList succeededLockTokens, IDictionary serializedAdditionalRawData) + { + FailedLockTokens = failedLockTokens; + SucceededLockTokens = succeededLockTokens; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal RejectResult() + { + } + + /// Array of FailedLockToken for failed cloud events. Each FailedLockToken includes the lock token along with the related error information (namely, the error code and description). + public IReadOnlyList FailedLockTokens { get; } + /// Array of lock tokens for the successfully rejected cloud events. + public IReadOnlyList SucceededLockTokens { get; } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseDelay.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseDelay.cs new file mode 100644 index 000000000000..a1c9cf7f7e07 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseDelay.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.Messaging.EventGrid.Namespaces +{ + /// Supported delays for release operation. + public readonly partial struct ReleaseDelay : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public ReleaseDelay(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string NoDelayValue = "0"; + private const string TenSecondsValue = "10"; + private const string OneMinuteValue = "60"; + private const string TenMinutesValue = "600"; + private const string OneHourValue = "3600"; + + /// Release the event after 0 seconds. + public static ReleaseDelay NoDelay { get; } = new ReleaseDelay(NoDelayValue); + /// Release the event after 10 seconds. + public static ReleaseDelay TenSeconds { get; } = new ReleaseDelay(TenSecondsValue); + /// Release the event after 60 seconds. + public static ReleaseDelay OneMinute { get; } = new ReleaseDelay(OneMinuteValue); + /// Release the event after 600 seconds. + public static ReleaseDelay TenMinutes { get; } = new ReleaseDelay(TenMinutesValue); + /// Release the event after 3600 seconds. + public static ReleaseDelay OneHour { get; } = new ReleaseDelay(OneHourValue); + /// Determines if two values are the same. + public static bool operator ==(ReleaseDelay left, ReleaseDelay right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(ReleaseDelay left, ReleaseDelay right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator ReleaseDelay(string value) => new ReleaseDelay(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ReleaseDelay other && Equals(other); + /// + public bool Equals(ReleaseDelay 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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseRequest.Serialization.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseRequest.Serialization.cs new file mode 100644 index 000000000000..b0d0881cf3df --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseRequest.Serialization.cs @@ -0,0 +1,152 @@ +// 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.Messaging.EventGrid.Namespaces +{ + internal partial class ReleaseRequest : 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(ReleaseRequest)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("lockTokens"u8); + writer.WriteStartArray(); + foreach (var item in LockTokens) + { + 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 + } + } + } + + ReleaseRequest 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(ReleaseRequest)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeReleaseRequest(document.RootElement, options); + } + + internal static ReleaseRequest DeserializeReleaseRequest(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList lockTokens = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("lockTokens"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + lockTokens = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ReleaseRequest(lockTokens, 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(ReleaseRequest)} does not support writing '{options.Format}' format."); + } + } + + ReleaseRequest 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 DeserializeReleaseRequest(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ReleaseRequest)} 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 ReleaseRequest FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeReleaseRequest(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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseRequest.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseRequest.cs new file mode 100644 index 000000000000..8081e38d2411 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseRequest.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 Azure.Messaging.EventGrid.Namespaces +{ + /// The ReleaseRequest. + internal partial class ReleaseRequest + { + /// + /// 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 . + /// Array of lock tokens. + /// is null. + internal ReleaseRequest(IEnumerable lockTokens) + { + Argument.AssertNotNull(lockTokens, nameof(lockTokens)); + + LockTokens = lockTokens.ToList(); + } + + /// Initializes a new instance of . + /// Array of lock tokens. + /// Keeps track of any properties unknown to the library. + internal ReleaseRequest(IReadOnlyList lockTokens, IDictionary serializedAdditionalRawData) + { + LockTokens = lockTokens; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal ReleaseRequest() + { + } + + /// Array of lock tokens. + public IReadOnlyList LockTokens { get; } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseResult.Serialization.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseResult.Serialization.cs new file mode 100644 index 000000000000..f1539a3b45e2 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseResult.Serialization.cs @@ -0,0 +1,170 @@ +// 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.Messaging.EventGrid.Namespaces +{ + public partial class ReleaseResult : 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(ReleaseResult)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("failedLockTokens"u8); + writer.WriteStartArray(); + foreach (var item in FailedLockTokens) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + writer.WritePropertyName("succeededLockTokens"u8); + writer.WriteStartArray(); + foreach (var item in SucceededLockTokens) + { + 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 + } + } + } + + ReleaseResult 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(ReleaseResult)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeReleaseResult(document.RootElement, options); + } + + internal static ReleaseResult DeserializeReleaseResult(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList failedLockTokens = default; + IReadOnlyList succeededLockTokens = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("failedLockTokens"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(FailedLockToken.DeserializeFailedLockToken(item, options)); + } + failedLockTokens = array; + continue; + } + if (property.NameEquals("succeededLockTokens"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + succeededLockTokens = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new ReleaseResult(failedLockTokens, succeededLockTokens, 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(ReleaseResult)} does not support writing '{options.Format}' format."); + } + } + + ReleaseResult 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 DeserializeReleaseResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ReleaseResult)} 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 ReleaseResult FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeReleaseResult(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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseResult.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseResult.cs new file mode 100644 index 000000000000..a12f10dc025a --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/ReleaseResult.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 Azure.Messaging.EventGrid.Namespaces +{ + /// The result of the Release operation. + public partial class ReleaseResult + { + /// + /// 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 . + /// Array of FailedLockToken for failed cloud events. Each FailedLockToken includes the lock token along with the related error information (namely, the error code and description). + /// Array of lock tokens for the successfully released cloud events. + /// or is null. + internal ReleaseResult(IEnumerable failedLockTokens, IEnumerable succeededLockTokens) + { + Argument.AssertNotNull(failedLockTokens, nameof(failedLockTokens)); + Argument.AssertNotNull(succeededLockTokens, nameof(succeededLockTokens)); + + FailedLockTokens = failedLockTokens.ToList(); + SucceededLockTokens = succeededLockTokens.ToList(); + } + + /// Initializes a new instance of . + /// Array of FailedLockToken for failed cloud events. Each FailedLockToken includes the lock token along with the related error information (namely, the error code and description). + /// Array of lock tokens for the successfully released cloud events. + /// Keeps track of any properties unknown to the library. + internal ReleaseResult(IReadOnlyList failedLockTokens, IReadOnlyList succeededLockTokens, IDictionary serializedAdditionalRawData) + { + FailedLockTokens = failedLockTokens; + SucceededLockTokens = succeededLockTokens; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal ReleaseResult() + { + } + + /// Array of FailedLockToken for failed cloud events. Each FailedLockToken includes the lock token along with the related error information (namely, the error code and description). + public IReadOnlyList FailedLockTokens { get; } + /// Array of lock tokens for the successfully released cloud events. + public IReadOnlyList SucceededLockTokens { get; } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RenewLocksRequest.Serialization.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RenewLocksRequest.Serialization.cs new file mode 100644 index 000000000000..7d907f8d7993 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RenewLocksRequest.Serialization.cs @@ -0,0 +1,152 @@ +// 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.Messaging.EventGrid.Namespaces +{ + internal partial class RenewLocksRequest : 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(RenewLocksRequest)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("lockTokens"u8); + writer.WriteStartArray(); + foreach (var item in LockTokens) + { + 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 + } + } + } + + RenewLocksRequest 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(RenewLocksRequest)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRenewLocksRequest(document.RootElement, options); + } + + internal static RenewLocksRequest DeserializeRenewLocksRequest(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList lockTokens = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("lockTokens"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + lockTokens = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RenewLocksRequest(lockTokens, 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(RenewLocksRequest)} does not support writing '{options.Format}' format."); + } + } + + RenewLocksRequest 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 DeserializeRenewLocksRequest(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RenewLocksRequest)} 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 RenewLocksRequest FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRenewLocksRequest(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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RenewLocksRequest.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RenewLocksRequest.cs new file mode 100644 index 000000000000..60ac0dd1be38 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RenewLocksRequest.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 Azure.Messaging.EventGrid.Namespaces +{ + /// The RenewLocksRequest. + internal partial class RenewLocksRequest + { + /// + /// 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 . + /// Array of lock tokens. + /// is null. + internal RenewLocksRequest(IEnumerable lockTokens) + { + Argument.AssertNotNull(lockTokens, nameof(lockTokens)); + + LockTokens = lockTokens.ToList(); + } + + /// Initializes a new instance of . + /// Array of lock tokens. + /// Keeps track of any properties unknown to the library. + internal RenewLocksRequest(IReadOnlyList lockTokens, IDictionary serializedAdditionalRawData) + { + LockTokens = lockTokens; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal RenewLocksRequest() + { + } + + /// Array of lock tokens. + public IReadOnlyList LockTokens { get; } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RenewLocksResult.Serialization.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RenewLocksResult.Serialization.cs new file mode 100644 index 000000000000..bbce52d64806 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RenewLocksResult.Serialization.cs @@ -0,0 +1,170 @@ +// 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.Messaging.EventGrid.Namespaces +{ + public partial class RenewLocksResult : 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(RenewLocksResult)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("failedLockTokens"u8); + writer.WriteStartArray(); + foreach (var item in FailedLockTokens) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + writer.WritePropertyName("succeededLockTokens"u8); + writer.WriteStartArray(); + foreach (var item in SucceededLockTokens) + { + 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 + } + } + } + + RenewLocksResult 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(RenewLocksResult)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRenewLocksResult(document.RootElement, options); + } + + internal static RenewLocksResult DeserializeRenewLocksResult(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList failedLockTokens = default; + IReadOnlyList succeededLockTokens = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("failedLockTokens"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(FailedLockToken.DeserializeFailedLockToken(item, options)); + } + failedLockTokens = array; + continue; + } + if (property.NameEquals("succeededLockTokens"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + succeededLockTokens = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RenewLocksResult(failedLockTokens, succeededLockTokens, 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(RenewLocksResult)} does not support writing '{options.Format}' format."); + } + } + + RenewLocksResult 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 DeserializeRenewLocksResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RenewLocksResult)} 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 RenewLocksResult FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRenewLocksResult(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/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RenewLocksResult.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RenewLocksResult.cs new file mode 100644 index 000000000000..5f3f38c60eff --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Generated/RenewLocksResult.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 Azure.Messaging.EventGrid.Namespaces +{ + /// The result of the RenewLock operation. + public partial class RenewLocksResult + { + /// + /// 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 . + /// Array of FailedLockToken for failed cloud events. Each FailedLockToken includes the lock token along with the related error information (namely, the error code and description). + /// Array of lock tokens for the successfully renewed locks. + /// or is null. + internal RenewLocksResult(IEnumerable failedLockTokens, IEnumerable succeededLockTokens) + { + Argument.AssertNotNull(failedLockTokens, nameof(failedLockTokens)); + Argument.AssertNotNull(succeededLockTokens, nameof(succeededLockTokens)); + + FailedLockTokens = failedLockTokens.ToList(); + SucceededLockTokens = succeededLockTokens.ToList(); + } + + /// Initializes a new instance of . + /// Array of FailedLockToken for failed cloud events. Each FailedLockToken includes the lock token along with the related error information (namely, the error code and description). + /// Array of lock tokens for the successfully renewed locks. + /// Keeps track of any properties unknown to the library. + internal RenewLocksResult(IReadOnlyList failedLockTokens, IReadOnlyList succeededLockTokens, IDictionary serializedAdditionalRawData) + { + FailedLockTokens = failedLockTokens; + SucceededLockTokens = succeededLockTokens; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal RenewLocksResult() + { + } + + /// Array of FailedLockToken for failed cloud events. Each FailedLockToken includes the lock token along with the related error information (namely, the error code and description). + public IReadOnlyList FailedLockTokens { get; } + /// Array of lock tokens for the successfully renewed locks. + public IReadOnlyList SucceededLockTokens { get; } + } +} diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Properties/AssemblyInfo.cs b/sdk/eventgrid/Azure.Messaging.EventGridV2/src/Properties/AssemblyInfo.cs new file mode 100644 index 000000000000..d5b2dd2228ed --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/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.Messaging.EventGrid.Namespaces.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("Microsoft.Template")] diff --git a/sdk/eventgrid/Azure.Messaging.EventGridV2/tsp-location.yaml b/sdk/eventgrid/Azure.Messaging.EventGridV2/tsp-location.yaml new file mode 100644 index 000000000000..d043bc57c5c6 --- /dev/null +++ b/sdk/eventgrid/Azure.Messaging.EventGridV2/tsp-location.yaml @@ -0,0 +1,4 @@ +directory: specification/eventgrid/Azure.Messaging.EventGrid +commit: 27a6a18feb693251ea80d1894f77fe8c0fdce06a +repo: Azure/azure-rest-api-specs +additionalDirectories: diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ApiResponseFormat.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ApiResponseFormat.cs new file mode 100644 index 000000000000..a9d6dc151976 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ApiResponseFormat.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.AI.OpenAI.Assistants +{ + /// Possible API response formats. + internal readonly partial struct ApiResponseFormat : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public ApiResponseFormat(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string TextValue = "text"; + private const string JsonObjectValue = "json_object"; + private const string JsonSchemaValue = "json_schema"; + + /// `text` format should be used for requests involving any sort of ToolCall. + public static ApiResponseFormat Text { get; } = new ApiResponseFormat(TextValue); + /// Using `json_object` format will limit the usage of ToolCall to only functions. + public static ApiResponseFormat JsonObject { get; } = new ApiResponseFormat(JsonObjectValue); + /// Using `json_schema` format will ensure the model matches the supplied JSON schema. + public static ApiResponseFormat JsonSchema { get; } = new ApiResponseFormat(JsonSchemaValue); + /// Determines if two values are the same. + public static bool operator ==(ApiResponseFormat left, ApiResponseFormat right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(ApiResponseFormat left, ApiResponseFormat right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator ApiResponseFormat(string value) => new ApiResponseFormat(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ApiResponseFormat other && Equals(other); + /// + public bool Equals(ApiResponseFormat 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/Assistant.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/Assistant.Serialization.cs index 54d84a05db04..590f2636f4bb 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/Assistant.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/Assistant.Serialization.cs @@ -76,13 +76,52 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteObjectValue(item, options); } writer.WriteEndArray(); - writer.WritePropertyName("file_ids"u8); - writer.WriteStartArray(); - foreach (var item in FileIds) + if (ToolResources != null) { - writer.WriteStringValue(item); + writer.WritePropertyName("tool_resources"u8); + writer.WriteObjectValue(ToolResources, options); + } + else + { + writer.WriteNull("tool_resources"); + } + if (Temperature != null) + { + writer.WritePropertyName("temperature"u8); + writer.WriteNumberValue(Temperature.Value); + } + else + { + writer.WriteNull("temperature"); + } + if (TopP != null) + { + writer.WritePropertyName("top_p"u8); + writer.WriteNumberValue(TopP.Value); + } + else + { + writer.WriteNull("top_p"); + } + if (Optional.IsDefined(ResponseFormat)) + { + if (ResponseFormat != null) + { + writer.WritePropertyName("response_format"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(ResponseFormat); +#else + using (JsonDocument document = JsonDocument.Parse(ResponseFormat, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + else + { + writer.WriteNull("response_format"); + } } - writer.WriteEndArray(); if (Metadata != null && Optional.IsCollectionDefined(Metadata)) { writer.WritePropertyName("metadata"u8); @@ -143,7 +182,10 @@ internal static Assistant DeserializeAssistant(JsonElement element, ModelReaderW string model = default; string instructions = default; IReadOnlyList tools = default; - IReadOnlyList fileIds = default; + ToolResources toolResources = default; + float? temperature = default; + float? topP = default; + BinaryData responseFormat = default; IReadOnlyDictionary metadata = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); @@ -209,14 +251,44 @@ internal static Assistant DeserializeAssistant(JsonElement element, ModelReaderW tools = array; continue; } - if (property.NameEquals("file_ids"u8)) + if (property.NameEquals("tool_resources"u8)) { - List array = new List(); - foreach (var item in property.Value.EnumerateArray()) + if (property.Value.ValueKind == JsonValueKind.Null) { - array.Add(item.GetString()); + toolResources = null; + continue; + } + toolResources = ToolResources.DeserializeToolResources(property.Value, options); + continue; + } + if (property.NameEquals("temperature"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + temperature = null; + continue; + } + temperature = property.Value.GetSingle(); + continue; + } + if (property.NameEquals("top_p"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + topP = null; + continue; + } + topP = property.Value.GetSingle(); + continue; + } + if (property.NameEquals("response_format"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + responseFormat = null; + continue; } - fileIds = array; + responseFormat = BinaryData.FromString(property.Value.GetRawText()); continue; } if (property.NameEquals("metadata"u8)) @@ -249,7 +321,10 @@ internal static Assistant DeserializeAssistant(JsonElement element, ModelReaderW model, instructions, tools, - fileIds, + toolResources, + temperature, + topP, + responseFormat, metadata, serializedAdditionalRawData); } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/Assistant.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/Assistant.cs index 34402e5480d9..09b938b95c0e 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/Assistant.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/Assistant.cs @@ -56,17 +56,29 @@ public partial class Assistant /// /// The collection of tools enabled for the assistant. /// 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 . + /// The available derived classes include , and . + /// + /// + /// A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` + /// tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + /// + /// + /// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, + /// while lower values like 0.2 will make it more focused and deterministic. + /// + /// + /// An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. + /// So 0.1 means only the tokens comprising the top 10% probability mass are considered. + /// + /// We generally recommend altering this or temperature but not both. /// - /// A list of attached file IDs, ordered by creation date in ascending order. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. - /// , , or is null. - internal Assistant(string id, DateTimeOffset createdAt, string name, string description, string model, string instructions, IEnumerable tools, IEnumerable fileIds, IReadOnlyDictionary metadata) + /// , or is null. + internal Assistant(string id, DateTimeOffset createdAt, string name, string description, string model, string instructions, IEnumerable tools, ToolResources toolResources, float? temperature, float? topP, IReadOnlyDictionary metadata) { Argument.AssertNotNull(id, nameof(id)); Argument.AssertNotNull(model, nameof(model)); Argument.AssertNotNull(tools, nameof(tools)); - Argument.AssertNotNull(fileIds, nameof(fileIds)); Id = id; CreatedAt = createdAt; @@ -75,7 +87,9 @@ internal Assistant(string id, DateTimeOffset createdAt, string name, string desc Model = model; Instructions = instructions; Tools = tools.ToList(); - FileIds = fileIds.ToList(); + ToolResources = toolResources; + Temperature = temperature; + TopP = topP; Metadata = metadata; } @@ -90,12 +104,26 @@ internal Assistant(string id, DateTimeOffset createdAt, string name, string desc /// /// The collection of tools enabled for the assistant. /// 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 . + /// The available derived classes include , and . + /// + /// + /// A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` + /// tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + /// + /// + /// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, + /// while lower values like 0.2 will make it more focused and deterministic. + /// + /// + /// An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. + /// So 0.1 means only the tokens comprising the top 10% probability mass are considered. + /// + /// We generally recommend altering this or temperature but not both. /// - /// A list of attached file IDs, ordered by creation date in ascending order. + /// The response format of the tool calls used by this assistant. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// Keeps track of any properties unknown to the library. - internal Assistant(string id, string @object, DateTimeOffset createdAt, string name, string description, string model, string instructions, IReadOnlyList tools, IReadOnlyList fileIds, IReadOnlyDictionary metadata, IDictionary serializedAdditionalRawData) + internal Assistant(string id, string @object, DateTimeOffset createdAt, string name, string description, string model, string instructions, IReadOnlyList tools, ToolResources toolResources, float? temperature, float? topP, BinaryData responseFormat, IReadOnlyDictionary metadata, IDictionary serializedAdditionalRawData) { Id = id; Object = @object; @@ -105,7 +133,10 @@ internal Assistant(string id, string @object, DateTimeOffset createdAt, string n Model = model; Instructions = instructions; Tools = tools; - FileIds = fileIds; + ToolResources = toolResources; + Temperature = temperature; + TopP = topP; + ResponseFormat = responseFormat; Metadata = metadata; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -131,11 +162,71 @@ internal Assistant() /// /// The collection of tools enabled for the assistant. /// 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 . + /// The available derived classes include , and . /// public IReadOnlyList Tools { get; } - /// A list of attached file IDs, ordered by creation date in ascending order. - public IReadOnlyList FileIds { get; } + /// + /// A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` + /// tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + /// + public ToolResources ToolResources { get; } + /// + /// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, + /// while lower values like 0.2 will make it more focused and deterministic. + /// + public float? Temperature { get; } + /// + /// An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. + /// So 0.1 means only the tokens comprising the top 10% probability mass are considered. + /// + /// We generally recommend altering this or temperature but not both. + /// + public float? TopP { get; } + /// + /// The response format of the tool calls used by this assistant. + /// + /// To assign an object to this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// + /// Supported types: + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// 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 ResponseFormat { get; } /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. public IReadOnlyDictionary Metadata { get; } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantCreationOptions.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantCreationOptions.Serialization.cs index d0f8a38f8d29..3e54e193e53e 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantCreationOptions.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantCreationOptions.Serialization.cs @@ -82,15 +82,60 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (Optional.IsCollectionDefined(FileIds)) + if (Optional.IsDefined(ToolResources)) { - writer.WritePropertyName("file_ids"u8); - writer.WriteStartArray(); - foreach (var item in FileIds) + if (ToolResources != null) { - writer.WriteStringValue(item); + writer.WritePropertyName("tool_resources"u8); + writer.WriteObjectValue(ToolResources, options); + } + else + { + writer.WriteNull("tool_resources"); + } + } + if (Optional.IsDefined(Temperature)) + { + if (Temperature != null) + { + writer.WritePropertyName("temperature"u8); + writer.WriteNumberValue(Temperature.Value); + } + else + { + writer.WriteNull("temperature"); + } + } + if (Optional.IsDefined(TopP)) + { + if (TopP != null) + { + writer.WritePropertyName("top_p"u8); + writer.WriteNumberValue(TopP.Value); + } + else + { + writer.WriteNull("top_p"); + } + } + if (Optional.IsDefined(ResponseFormat)) + { + if (ResponseFormat != null) + { + writer.WritePropertyName("response_format"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(ResponseFormat); +#else + using (JsonDocument document = JsonDocument.Parse(ResponseFormat, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + else + { + writer.WriteNull("response_format"); } - writer.WriteEndArray(); } if (Optional.IsCollectionDefined(Metadata)) { @@ -152,7 +197,10 @@ internal static AssistantCreationOptions DeserializeAssistantCreationOptions(Jso string description = default; string instructions = default; IList tools = default; - IList fileIds = default; + CreateToolResourcesOptions toolResources = default; + float? temperature = default; + float? topP = default; + BinaryData responseFormat = default; IDictionary metadata = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); @@ -207,18 +255,44 @@ internal static AssistantCreationOptions DeserializeAssistantCreationOptions(Jso tools = array; continue; } - if (property.NameEquals("file_ids"u8)) + if (property.NameEquals("tool_resources"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) { + toolResources = null; continue; } - List array = new List(); - foreach (var item in property.Value.EnumerateArray()) + toolResources = CreateToolResourcesOptions.DeserializeCreateToolResourcesOptions(property.Value, options); + continue; + } + if (property.NameEquals("temperature"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + temperature = null; + continue; + } + temperature = property.Value.GetSingle(); + continue; + } + if (property.NameEquals("top_p"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) { - array.Add(item.GetString()); + topP = null; + continue; + } + topP = property.Value.GetSingle(); + continue; + } + if (property.NameEquals("response_format"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + responseFormat = null; + continue; } - fileIds = array; + responseFormat = BinaryData.FromString(property.Value.GetRawText()); continue; } if (property.NameEquals("metadata"u8)) @@ -247,7 +321,10 @@ internal static AssistantCreationOptions DeserializeAssistantCreationOptions(Jso description, instructions, tools ?? new ChangeTrackingList(), - fileIds ?? new ChangeTrackingList(), + toolResources, + temperature, + topP, + responseFormat, metadata ?? new ChangeTrackingDictionary(), serializedAdditionalRawData); } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantCreationOptions.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantCreationOptions.cs index 34372f563399..87275c6b0976 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantCreationOptions.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantCreationOptions.cs @@ -54,7 +54,6 @@ public AssistantCreationOptions(string model) Model = model; Tools = new ChangeTrackingList(); - FileIds = new ChangeTrackingList(); Metadata = new ChangeTrackingDictionary(); } @@ -66,19 +65,36 @@ public AssistantCreationOptions(string model) /// /// The collection of tools to enable for the new assistant. /// 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 . + /// The available derived classes include , and . /// - /// A list of previously uploaded file IDs to attach to the assistant. + /// + /// A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` + /// tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + /// + /// + /// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, + /// while lower values like 0.2 will make it more focused and deterministic. + /// + /// + /// An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. + /// So 0.1 means only the tokens comprising the top 10% probability mass are considered. + /// + /// We generally recommend altering this or temperature but not both. + /// + /// The response format of the tool calls used by this assistant. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// Keeps track of any properties unknown to the library. - internal AssistantCreationOptions(string model, string name, string description, string instructions, IList tools, IList fileIds, IDictionary metadata, IDictionary serializedAdditionalRawData) + internal AssistantCreationOptions(string model, string name, string description, string instructions, IList tools, CreateToolResourcesOptions toolResources, float? temperature, float? topP, BinaryData responseFormat, IDictionary metadata, IDictionary serializedAdditionalRawData) { Model = model; Name = name; Description = description; Instructions = instructions; Tools = tools; - FileIds = fileIds; + ToolResources = toolResources; + Temperature = temperature; + TopP = topP; + ResponseFormat = responseFormat; Metadata = metadata; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -99,11 +115,71 @@ internal AssistantCreationOptions() /// /// The collection of tools to enable for the new assistant. /// 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 . + /// The available derived classes include , and . /// public IList Tools { get; } - /// A list of previously uploaded file IDs to attach to the assistant. - public IList FileIds { get; } + /// + /// A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` + /// tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + /// + public CreateToolResourcesOptions ToolResources { get; set; } + /// + /// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, + /// while lower values like 0.2 will make it more focused and deterministic. + /// + public float? Temperature { get; set; } + /// + /// An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. + /// So 0.1 means only the tokens comprising the top 10% probability mass are considered. + /// + /// We generally recommend altering this or temperature but not both. + /// + public float? TopP { get; set; } + /// + /// The response format of the tool calls used by this assistant. + /// + /// To assign an object to this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// + /// Supported types: + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// 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 ResponseFormat { get; set; } /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. public IDictionary Metadata { get; set; } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantStreamEvent.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantStreamEvent.cs new file mode 100644 index 000000000000..3c35b2590d78 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantStreamEvent.cs @@ -0,0 +1,134 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace Azure.AI.OpenAI.Assistants +{ + /// + /// Each event in a server-sent events stream has an `event` and `data` property: + /// + /// ``` + /// event: thread.created + /// data: {"id": "thread_123", "object": "thread", ...} + /// ``` + /// + /// We emit events whenever a new object is created, transitions to a new state, or is being + /// streamed in parts (deltas). For example, we emit `thread.run.created` when a new run + /// is created, `thread.run.completed` when a run completes, and so on. When an Assistant chooses + /// to create a message during a run, we emit a `thread.message.created event`, a + /// `thread.message.in_progress` event, many `thread.message.delta` events, and finally a + /// `thread.message.completed` event. + /// + /// We may add additional events over time, so we recommend handling unknown events gracefully + /// in your code. + /// + public readonly partial struct AssistantStreamEvent : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public AssistantStreamEvent(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string ThreadCreatedValue = "thread.created"; + private const string ThreadRunCreatedValue = "thread.run.created"; + private const string ThreadRunQueuedValue = "thread.run.queued"; + private const string ThreadRunInProgressValue = "thread.run.in_progress"; + private const string ThreadRunRequiresActionValue = "thread.run.requires_action"; + private const string ThreadRunCompletedValue = "thread.run.completed"; + private const string ThreadRunFailedValue = "thread.run.failed"; + private const string ThreadRunCancellingValue = "thread.run.cancelling"; + private const string ThreadRunCancelledValue = "thread.run.cancelled"; + private const string ThreadRunExpiredValue = "thread.run.expired"; + private const string ThreadRunStepCreatedValue = "thread.run.step.created"; + private const string ThreadRunStepInProgressValue = "thread.run.step.in_progress"; + private const string ThreadRunStepDeltaValue = "thread.run.step.delta"; + private const string ThreadRunStepCompletedValue = "thread.run.step.completed"; + private const string ThreadRunStepFailedValue = "thread.run.step.failed"; + private const string ThreadRunStepCancelledValue = "thread.run.step.cancelled"; + private const string ThreadRunStepExpiredValue = "thread.run.step.expired"; + private const string ThreadMessageCreatedValue = "thread.message.created"; + private const string ThreadMessageInProgressValue = "thread.message.in_progress"; + private const string ThreadMessageDeltaValue = "thread.message.delta"; + private const string ThreadMessageCompletedValue = "thread.message.completed"; + private const string ThreadMessageIncompleteValue = "thread.message.incomplete"; + private const string ErrorValue = "error"; + private const string DoneValue = "done"; + + /// Event sent when a new thread is created. The data of this event is of type AssistantThread. + public static AssistantStreamEvent ThreadCreated { get; } = new AssistantStreamEvent(ThreadCreatedValue); + /// Event sent when a new run is created. The data of this event is of type ThreadRun. + public static AssistantStreamEvent ThreadRunCreated { get; } = new AssistantStreamEvent(ThreadRunCreatedValue); + /// Event sent when a run moves to `queued` status. The data of this event is of type ThreadRun. + public static AssistantStreamEvent ThreadRunQueued { get; } = new AssistantStreamEvent(ThreadRunQueuedValue); + /// Event sent when a run moves to `in_progress` status. The data of this event is of type ThreadRun. + public static AssistantStreamEvent ThreadRunInProgress { get; } = new AssistantStreamEvent(ThreadRunInProgressValue); + /// Event sent when a run moves to `requires_action` status. The data of this event is of type ThreadRun. + public static AssistantStreamEvent ThreadRunRequiresAction { get; } = new AssistantStreamEvent(ThreadRunRequiresActionValue); + /// Event sent when a run is completed. The data of this event is of type ThreadRun. + public static AssistantStreamEvent ThreadRunCompleted { get; } = new AssistantStreamEvent(ThreadRunCompletedValue); + /// Event sent when a run fails. The data of this event is of type ThreadRun. + public static AssistantStreamEvent ThreadRunFailed { get; } = new AssistantStreamEvent(ThreadRunFailedValue); + /// Event sent when a run moves to `cancelling` status. The data of this event is of type ThreadRun. + public static AssistantStreamEvent ThreadRunCancelling { get; } = new AssistantStreamEvent(ThreadRunCancellingValue); + /// Event sent when a run is cancelled. The data of this event is of type ThreadRun. + public static AssistantStreamEvent ThreadRunCancelled { get; } = new AssistantStreamEvent(ThreadRunCancelledValue); + /// Event sent when a run is expired. The data of this event is of type ThreadRun. + public static AssistantStreamEvent ThreadRunExpired { get; } = new AssistantStreamEvent(ThreadRunExpiredValue); + /// Event sent when a new thread run step is created. The data of this event is of type RunStep. + public static AssistantStreamEvent ThreadRunStepCreated { get; } = new AssistantStreamEvent(ThreadRunStepCreatedValue); + /// Event sent when a run step moves to `in_progress` status. The data of this event is of type RunStep. + public static AssistantStreamEvent ThreadRunStepInProgress { get; } = new AssistantStreamEvent(ThreadRunStepInProgressValue); + /// Event sent when a run stepis being streamed. The data of this event is of type RunStepDeltaChunk. + public static AssistantStreamEvent ThreadRunStepDelta { get; } = new AssistantStreamEvent(ThreadRunStepDeltaValue); + /// Event sent when a run step is completed. The data of this event is of type RunStep. + public static AssistantStreamEvent ThreadRunStepCompleted { get; } = new AssistantStreamEvent(ThreadRunStepCompletedValue); + /// Event sent when a run step fails. The data of this event is of type RunStep. + public static AssistantStreamEvent ThreadRunStepFailed { get; } = new AssistantStreamEvent(ThreadRunStepFailedValue); + /// Event sent when a run step is cancelled. The data of this event is of type RunStep. + public static AssistantStreamEvent ThreadRunStepCancelled { get; } = new AssistantStreamEvent(ThreadRunStepCancelledValue); + /// Event sent when a run step is expired. The data of this event is of type RunStep. + public static AssistantStreamEvent ThreadRunStepExpired { get; } = new AssistantStreamEvent(ThreadRunStepExpiredValue); + /// Event sent when a new message is created. The data of this event is of type ThreadMessage. + public static AssistantStreamEvent ThreadMessageCreated { get; } = new AssistantStreamEvent(ThreadMessageCreatedValue); + /// Event sent when a message moves to `in_progress` status. The data of this event is of type ThreadMessage. + public static AssistantStreamEvent ThreadMessageInProgress { get; } = new AssistantStreamEvent(ThreadMessageInProgressValue); + /// Event sent when a message is being streamed. The data of this event is of type MessageDeltaChunk. + public static AssistantStreamEvent ThreadMessageDelta { get; } = new AssistantStreamEvent(ThreadMessageDeltaValue); + /// Event sent when a message is completed. The data of this event is of type ThreadMessage. + public static AssistantStreamEvent ThreadMessageCompleted { get; } = new AssistantStreamEvent(ThreadMessageCompletedValue); + /// Event sent before a message is completed. The data of this event is of type ThreadMessage. + public static AssistantStreamEvent ThreadMessageIncomplete { get; } = new AssistantStreamEvent(ThreadMessageIncompleteValue); + /// Event sent when an error occurs, such as an internal server error or a timeout. + public static AssistantStreamEvent Error { get; } = new AssistantStreamEvent(ErrorValue); + /// Event sent when the stream is done. + public static AssistantStreamEvent Done { get; } = new AssistantStreamEvent(DoneValue); + /// Determines if two values are the same. + public static bool operator ==(AssistantStreamEvent left, AssistantStreamEvent right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(AssistantStreamEvent left, AssistantStreamEvent right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator AssistantStreamEvent(string value) => new AssistantStreamEvent(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is AssistantStreamEvent other && Equals(other); + /// + public bool Equals(AssistantStreamEvent 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantThread.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantThread.Serialization.cs index 568e554f63ce..0c33c423a7cb 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantThread.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantThread.Serialization.cs @@ -40,6 +40,15 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteStringValue(Object); writer.WritePropertyName("created_at"u8); writer.WriteNumberValue(CreatedAt, "U"); + if (ToolResources != null) + { + writer.WritePropertyName("tool_resources"u8); + writer.WriteObjectValue(ToolResources, options); + } + else + { + writer.WriteNull("tool_resources"); + } if (Metadata != null && Optional.IsCollectionDefined(Metadata)) { writer.WritePropertyName("metadata"u8); @@ -95,6 +104,7 @@ internal static AssistantThread DeserializeAssistantThread(JsonElement element, string id = default; string @object = default; DateTimeOffset createdAt = default; + ToolResources toolResources = default; IReadOnlyDictionary metadata = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); @@ -115,6 +125,16 @@ internal static AssistantThread DeserializeAssistantThread(JsonElement element, createdAt = DateTimeOffset.FromUnixTimeSeconds(property.Value.GetInt64()); continue; } + if (property.NameEquals("tool_resources"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + toolResources = null; + continue; + } + toolResources = ToolResources.DeserializeToolResources(property.Value, options); + continue; + } if (property.NameEquals("metadata"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) @@ -136,7 +156,13 @@ internal static AssistantThread DeserializeAssistantThread(JsonElement element, } } serializedAdditionalRawData = rawDataDictionary; - return new AssistantThread(id, @object, createdAt, metadata, serializedAdditionalRawData); + return new AssistantThread( + id, + @object, + createdAt, + toolResources, + metadata, + serializedAdditionalRawData); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantThread.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantThread.cs index 55fb2ac9a88e..11820b0ed0b6 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantThread.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantThread.cs @@ -48,14 +48,20 @@ public partial class AssistantThread /// Initializes a new instance of . /// The identifier, which can be referenced in API endpoints. /// The Unix timestamp, in seconds, representing when this object was created. + /// + /// A set of resources that are made available to the assistant's tools in this thread. The resources are specific to the type + /// of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list + /// of vector store IDs. + /// /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// is null. - internal AssistantThread(string id, DateTimeOffset createdAt, IReadOnlyDictionary metadata) + internal AssistantThread(string id, DateTimeOffset createdAt, ToolResources toolResources, IReadOnlyDictionary metadata) { Argument.AssertNotNull(id, nameof(id)); Id = id; CreatedAt = createdAt; + ToolResources = toolResources; Metadata = metadata; } @@ -63,13 +69,19 @@ internal AssistantThread(string id, DateTimeOffset createdAt, IReadOnlyDictionar /// The identifier, which can be referenced in API endpoints. /// The object type, which is always 'thread'. /// The Unix timestamp, in seconds, representing when this object was created. + /// + /// A set of resources that are made available to the assistant's tools in this thread. The resources are specific to the type + /// of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list + /// of vector store IDs. + /// /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// Keeps track of any properties unknown to the library. - internal AssistantThread(string id, string @object, DateTimeOffset createdAt, IReadOnlyDictionary metadata, IDictionary serializedAdditionalRawData) + internal AssistantThread(string id, string @object, DateTimeOffset createdAt, ToolResources toolResources, IReadOnlyDictionary metadata, IDictionary serializedAdditionalRawData) { Id = id; Object = @object; CreatedAt = createdAt; + ToolResources = toolResources; Metadata = metadata; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -84,6 +96,12 @@ internal AssistantThread() /// The Unix timestamp, in seconds, representing when this object was created. public DateTimeOffset CreatedAt { get; } + /// + /// A set of resources that are made available to the assistant's tools in this thread. The resources are specific to the type + /// of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list + /// of vector store IDs. + /// + public ToolResources ToolResources { get; } /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. public IReadOnlyDictionary Metadata { get; } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantThreadCreationOptions.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantThreadCreationOptions.Serialization.cs index 4c346f4c5b45..14aac63b59ed 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantThreadCreationOptions.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantThreadCreationOptions.Serialization.cs @@ -44,6 +44,18 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } + if (Optional.IsDefined(ToolResources)) + { + if (ToolResources != null) + { + writer.WritePropertyName("tool_resources"u8); + writer.WriteObjectValue(ToolResources, options); + } + else + { + writer.WriteNull("tool_resources"); + } + } if (Optional.IsCollectionDefined(Metadata)) { if (Metadata != null) @@ -99,7 +111,8 @@ internal static AssistantThreadCreationOptions DeserializeAssistantThreadCreatio { return null; } - IList messages = default; + IList messages = default; + CreateToolResourcesOptions toolResources = default; IDictionary metadata = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); @@ -111,14 +124,24 @@ internal static AssistantThreadCreationOptions DeserializeAssistantThreadCreatio { continue; } - List array = new List(); + List array = new List(); foreach (var item in property.Value.EnumerateArray()) { - array.Add(ThreadInitializationMessage.DeserializeThreadInitializationMessage(item, options)); + array.Add(ThreadMessageOptions.DeserializeThreadMessageOptions(item, options)); } messages = array; continue; } + if (property.NameEquals("tool_resources"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + toolResources = null; + continue; + } + toolResources = CreateToolResourcesOptions.DeserializeCreateToolResourcesOptions(property.Value, options); + continue; + } if (property.NameEquals("metadata"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) @@ -139,7 +162,7 @@ internal static AssistantThreadCreationOptions DeserializeAssistantThreadCreatio } } serializedAdditionalRawData = rawDataDictionary; - return new AssistantThreadCreationOptions(messages ?? new ChangeTrackingList(), metadata ?? new ChangeTrackingDictionary(), serializedAdditionalRawData); + return new AssistantThreadCreationOptions(messages ?? new ChangeTrackingList(), toolResources, metadata ?? new ChangeTrackingDictionary(), serializedAdditionalRawData); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantThreadCreationOptions.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantThreadCreationOptions.cs index 2df216a2c7e8..086af4d9dc8a 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantThreadCreationOptions.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantThreadCreationOptions.cs @@ -48,23 +48,35 @@ public partial class AssistantThreadCreationOptions /// Initializes a new instance of . public AssistantThreadCreationOptions() { - Messages = new ChangeTrackingList(); + Messages = new ChangeTrackingList(); Metadata = new ChangeTrackingDictionary(); } /// Initializes a new instance of . /// The initial messages to associate with the new thread. + /// + /// A set of resources that are made available to the assistant's tools in this thread. The resources are specific to the + /// type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires + /// a list of vector store IDs. + /// /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// Keeps track of any properties unknown to the library. - internal AssistantThreadCreationOptions(IList messages, IDictionary metadata, IDictionary serializedAdditionalRawData) + internal AssistantThreadCreationOptions(IList messages, CreateToolResourcesOptions toolResources, IDictionary metadata, IDictionary serializedAdditionalRawData) { Messages = messages; + ToolResources = toolResources; Metadata = metadata; _serializedAdditionalRawData = serializedAdditionalRawData; } /// The initial messages to associate with the new thread. - public IList Messages { get; } + public IList Messages { get; } + /// + /// A set of resources that are made available to the assistant's tools in this thread. The resources are specific to the + /// type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires + /// a list of vector store IDs. + /// + public CreateToolResourcesOptions ToolResources { get; set; } /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. public IDictionary Metadata { get; set; } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormat.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormat.Serialization.cs new file mode 100644 index 000000000000..3deab8002cf1 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormat.Serialization.cs @@ -0,0 +1,138 @@ +// 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.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + [PersistableModelProxy(typeof(UnknownAssistantsApiResponseFormat))] + public partial class AssistantsApiResponseFormat : 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(AssistantsApiResponseFormat)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(Type)) + { + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type.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 + } + } + } + + AssistantsApiResponseFormat 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(AssistantsApiResponseFormat)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeAssistantsApiResponseFormat(document.RootElement, options); + } + + internal static AssistantsApiResponseFormat DeserializeAssistantsApiResponseFormat(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type", out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "json_object": return AssistantsApiResponseFormatJsonObject.DeserializeAssistantsApiResponseFormatJsonObject(element, options); + case "json_schema": return AssistantsApiResponseFormatJsonSchema.DeserializeAssistantsApiResponseFormatJsonSchema(element, options); + case "text": return AssistantsApiResponseFormatText.DeserializeAssistantsApiResponseFormatText(element, options); + } + } + return UnknownAssistantsApiResponseFormat.DeserializeUnknownAssistantsApiResponseFormat(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(AssistantsApiResponseFormat)} does not support writing '{options.Format}' format."); + } + } + + AssistantsApiResponseFormat 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 DeserializeAssistantsApiResponseFormat(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(AssistantsApiResponseFormat)} 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 AssistantsApiResponseFormat FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeAssistantsApiResponseFormat(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormat.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormat.cs new file mode 100644 index 000000000000..85723ba24c31 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormat.cs @@ -0,0 +1,70 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// + /// An object describing the expected output of the model. If `json_object` only `function` type `tools` are allowed to be passed to the Run. + /// If `text` the model can return text or any value needed. + /// 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 AssistantsApiResponseFormat + { + /// + /// 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 AssistantsApiResponseFormat() + { + } + + /// Initializes a new instance of . + /// Must be one of `text`, `json_object` or `json_schema` . + /// Keeps track of any properties unknown to the library. + internal AssistantsApiResponseFormat(ApiResponseFormat? type, IDictionary serializedAdditionalRawData) + { + Type = type; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Must be one of `text`, `json_object` or `json_schema` . + internal ApiResponseFormat? Type { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonObject.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonObject.Serialization.cs new file mode 100644 index 000000000000..2a0cb536541a --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonObject.Serialization.cs @@ -0,0 +1,130 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class AssistantsApiResponseFormatJsonObject : 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(AssistantsApiResponseFormatJsonObject)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + } + + AssistantsApiResponseFormatJsonObject 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(AssistantsApiResponseFormatJsonObject)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeAssistantsApiResponseFormatJsonObject(document.RootElement, options); + } + + internal static AssistantsApiResponseFormatJsonObject DeserializeAssistantsApiResponseFormatJsonObject(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ApiResponseFormat? type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("type"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + type = new ApiResponseFormat(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new AssistantsApiResponseFormatJsonObject(type, 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(AssistantsApiResponseFormatJsonObject)} does not support writing '{options.Format}' format."); + } + } + + AssistantsApiResponseFormatJsonObject 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 DeserializeAssistantsApiResponseFormatJsonObject(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(AssistantsApiResponseFormatJsonObject)} 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 AssistantsApiResponseFormatJsonObject FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeAssistantsApiResponseFormatJsonObject(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonObject.cs new file mode 100644 index 000000000000..596e3ead3c16 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonObject.cs @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// An object describing expected output of the model as a JSON object. + public partial class AssistantsApiResponseFormatJsonObject : AssistantsApiResponseFormat + { + /// Initializes a new instance of . + public AssistantsApiResponseFormatJsonObject() + { + Type = Assistants.ApiResponseFormat?.JsonObject; + } + + /// Initializes a new instance of . + /// Must be one of `text`, `json_object` or `json_schema` . + /// Keeps track of any properties unknown to the library. + internal AssistantsApiResponseFormatJsonObject(ApiResponseFormat? type, IDictionary serializedAdditionalRawData) : base(type, serializedAdditionalRawData) + { + } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonSchema.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonSchema.Serialization.cs new file mode 100644 index 000000000000..ab75f3e95e18 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonSchema.Serialization.cs @@ -0,0 +1,138 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class AssistantsApiResponseFormatJsonSchema : 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(AssistantsApiResponseFormatJsonSchema)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + writer.WritePropertyName("json_schema"u8); + writer.WriteObjectValue(JsonSchema, options); + } + + AssistantsApiResponseFormatJsonSchema 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(AssistantsApiResponseFormatJsonSchema)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeAssistantsApiResponseFormatJsonSchema(document.RootElement, options); + } + + internal static AssistantsApiResponseFormatJsonSchema DeserializeAssistantsApiResponseFormatJsonSchema(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + AssistantsApiResponseFormatJsonSchemaJsonSchema jsonSchema = default; + ApiResponseFormat? type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("json_schema"u8)) + { + jsonSchema = AssistantsApiResponseFormatJsonSchemaJsonSchema.DeserializeAssistantsApiResponseFormatJsonSchemaJsonSchema(property.Value, options); + continue; + } + if (property.NameEquals("type"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + type = new ApiResponseFormat(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new AssistantsApiResponseFormatJsonSchema(type, serializedAdditionalRawData, jsonSchema); + } + + 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(AssistantsApiResponseFormatJsonSchema)} does not support writing '{options.Format}' format."); + } + } + + AssistantsApiResponseFormatJsonSchema 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 DeserializeAssistantsApiResponseFormatJsonSchema(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(AssistantsApiResponseFormatJsonSchema)} 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 AssistantsApiResponseFormatJsonSchema FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeAssistantsApiResponseFormatJsonSchema(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonSchema.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonSchema.cs new file mode 100644 index 000000000000..1b9f510138e2 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonSchema.cs @@ -0,0 +1,44 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// An object describing expected output of the model to match a JSON schema. + public partial class AssistantsApiResponseFormatJsonSchema : AssistantsApiResponseFormat + { + /// Initializes a new instance of . + /// The JSON schema that the model must output. + /// is null. + public AssistantsApiResponseFormatJsonSchema(AssistantsApiResponseFormatJsonSchemaJsonSchema jsonSchema) + { + Argument.AssertNotNull(jsonSchema, nameof(jsonSchema)); + + Type = Assistants.ApiResponseFormat?.JsonSchema; + JsonSchema = jsonSchema; + } + + /// Initializes a new instance of . + /// Must be one of `text`, `json_object` or `json_schema` . + /// Keeps track of any properties unknown to the library. + /// The JSON schema that the model must output. + internal AssistantsApiResponseFormatJsonSchema(ApiResponseFormat? type, IDictionary serializedAdditionalRawData, AssistantsApiResponseFormatJsonSchemaJsonSchema jsonSchema) : base(type, serializedAdditionalRawData) + { + JsonSchema = jsonSchema; + } + + /// Initializes a new instance of for deserialization. + internal AssistantsApiResponseFormatJsonSchema() + { + } + + /// The JSON schema that the model must output. + public AssistantsApiResponseFormatJsonSchemaJsonSchema JsonSchema { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonSchemaJsonSchema.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonSchemaJsonSchema.Serialization.cs new file mode 100644 index 000000000000..3ce87ee9a38f --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonSchemaJsonSchema.Serialization.cs @@ -0,0 +1,183 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class AssistantsApiResponseFormatJsonSchemaJsonSchema : 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(AssistantsApiResponseFormatJsonSchemaJsonSchema)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(Description)) + { + writer.WritePropertyName("description"u8); + writer.WriteStringValue(Description); + } + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); + writer.WritePropertyName("schema"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(Schema); +#else + using (JsonDocument document = JsonDocument.Parse(Schema, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + if (Optional.IsDefined(Strict)) + { + writer.WritePropertyName("strict"u8); + writer.WriteBooleanValue(Strict.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 + } + } + } + + AssistantsApiResponseFormatJsonSchemaJsonSchema 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(AssistantsApiResponseFormatJsonSchemaJsonSchema)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeAssistantsApiResponseFormatJsonSchemaJsonSchema(document.RootElement, options); + } + + internal static AssistantsApiResponseFormatJsonSchemaJsonSchema DeserializeAssistantsApiResponseFormatJsonSchemaJsonSchema(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string description = default; + string name = default; + BinaryData schema = default; + bool? strict = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("description"u8)) + { + description = property.Value.GetString(); + continue; + } + if (property.NameEquals("name"u8)) + { + name = property.Value.GetString(); + continue; + } + if (property.NameEquals("schema"u8)) + { + schema = BinaryData.FromString(property.Value.GetRawText()); + continue; + } + if (property.NameEquals("strict"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + strict = property.Value.GetBoolean(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new AssistantsApiResponseFormatJsonSchemaJsonSchema(description, name, schema, strict, 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(AssistantsApiResponseFormatJsonSchemaJsonSchema)} does not support writing '{options.Format}' format."); + } + } + + AssistantsApiResponseFormatJsonSchemaJsonSchema 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 DeserializeAssistantsApiResponseFormatJsonSchemaJsonSchema(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(AssistantsApiResponseFormatJsonSchemaJsonSchema)} 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 AssistantsApiResponseFormatJsonSchemaJsonSchema FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeAssistantsApiResponseFormatJsonSchemaJsonSchema(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonSchemaJsonSchema.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonSchemaJsonSchema.cs new file mode 100644 index 000000000000..ce281b777a78 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatJsonSchemaJsonSchema.cs @@ -0,0 +1,119 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// The AssistantsApiResponseFormatJsonSchemaJsonSchema. + public partial class AssistantsApiResponseFormatJsonSchemaJsonSchema + { + /// + /// 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 response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. + /// The schema for the response format, described as a JSON Schema object. + /// or is null. + public AssistantsApiResponseFormatJsonSchemaJsonSchema(string name, BinaryData schema) + { + Argument.AssertNotNull(name, nameof(name)); + Argument.AssertNotNull(schema, nameof(schema)); + + Name = name; + Schema = schema; + } + + /// Initializes a new instance of . + /// A description of what the response format is for, used by the model to determine how to respond in the format. + /// The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. + /// The schema for the response format, described as a JSON Schema object. + /// Whether to enable strict schema adherence when generating the output. If set to true, the model will always follow the exact schema defined in the `schema` field. Only a subset of JSON Schema is supported when `strict` is `true`. To learn more, read the Structured Outputs guide. + /// Keeps track of any properties unknown to the library. + internal AssistantsApiResponseFormatJsonSchemaJsonSchema(string description, string name, BinaryData schema, bool? strict, IDictionary serializedAdditionalRawData) + { + Description = description; + Name = name; + Schema = schema; + Strict = strict; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal AssistantsApiResponseFormatJsonSchemaJsonSchema() + { + } + + /// A description of what the response format is for, used by the model to determine how to respond in the format. + public string Description { get; set; } + /// The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. + public string Name { get; set; } + /// + /// The schema for the response format, described as a JSON Schema object. + /// + /// 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 Schema { get; set; } + /// Whether to enable strict schema adherence when generating the output. If set to true, the model will always follow the exact schema defined in the `schema` field. Only a subset of JSON Schema is supported when `strict` is `true`. To learn more, read the Structured Outputs guide. + public bool? Strict { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatMode.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatMode.cs new file mode 100644 index 000000000000..56e7d3f9a04b --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatMode.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.AI.OpenAI.Assistants +{ + /// Represents the mode in which the model will handle the return format of a tool call. + public readonly partial struct AssistantsApiResponseFormatMode : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public AssistantsApiResponseFormatMode(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string AutoValue = "auto"; + + /// Default value. Let the model handle the return format. + public static AssistantsApiResponseFormatMode Auto { get; } = new AssistantsApiResponseFormatMode(AutoValue); + /// Determines if two values are the same. + public static bool operator ==(AssistantsApiResponseFormatMode left, AssistantsApiResponseFormatMode right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(AssistantsApiResponseFormatMode left, AssistantsApiResponseFormatMode right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator AssistantsApiResponseFormatMode(string value) => new AssistantsApiResponseFormatMode(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is AssistantsApiResponseFormatMode other && Equals(other); + /// + public bool Equals(AssistantsApiResponseFormatMode 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatText.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatText.Serialization.cs new file mode 100644 index 000000000000..b1fc00fadf3b --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatText.Serialization.cs @@ -0,0 +1,130 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class AssistantsApiResponseFormatText : 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(AssistantsApiResponseFormatText)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + } + + AssistantsApiResponseFormatText 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(AssistantsApiResponseFormatText)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeAssistantsApiResponseFormatText(document.RootElement, options); + } + + internal static AssistantsApiResponseFormatText DeserializeAssistantsApiResponseFormatText(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ApiResponseFormat? type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("type"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + type = new ApiResponseFormat(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new AssistantsApiResponseFormatText(type, 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(AssistantsApiResponseFormatText)} does not support writing '{options.Format}' format."); + } + } + + AssistantsApiResponseFormatText 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 DeserializeAssistantsApiResponseFormatText(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(AssistantsApiResponseFormatText)} 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 AssistantsApiResponseFormatText FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeAssistantsApiResponseFormatText(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatText.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatText.cs new file mode 100644 index 000000000000..d0a8845001f6 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiResponseFormatText.cs @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// An object describing expected output of the model as text. + public partial class AssistantsApiResponseFormatText : AssistantsApiResponseFormat + { + /// Initializes a new instance of . + public AssistantsApiResponseFormatText() + { + Type = Assistants.ApiResponseFormat?.Text; + } + + /// Initializes a new instance of . + /// Must be one of `text`, `json_object` or `json_schema` . + /// Keeps track of any properties unknown to the library. + internal AssistantsApiResponseFormatText(ApiResponseFormat? type, IDictionary serializedAdditionalRawData) : base(type, serializedAdditionalRawData) + { + } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiToolChoiceOptionMode.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiToolChoiceOptionMode.cs new file mode 100644 index 000000000000..89f7812a7ae0 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsApiToolChoiceOptionMode.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 Azure.AI.OpenAI.Assistants +{ + /// Specifies how the tool choice will be used. + public readonly partial struct AssistantsApiToolChoiceOptionMode : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public AssistantsApiToolChoiceOptionMode(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string NoneValue = "none"; + private const string AutoValue = "auto"; + + /// The model will not call a function and instead generates a message. + public static AssistantsApiToolChoiceOptionMode None { get; } = new AssistantsApiToolChoiceOptionMode(NoneValue); + /// The model can pick between generating a message or calling a function. + public static AssistantsApiToolChoiceOptionMode Auto { get; } = new AssistantsApiToolChoiceOptionMode(AutoValue); + /// Determines if two values are the same. + public static bool operator ==(AssistantsApiToolChoiceOptionMode left, AssistantsApiToolChoiceOptionMode right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(AssistantsApiToolChoiceOptionMode left, AssistantsApiToolChoiceOptionMode right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator AssistantsApiToolChoiceOptionMode(string value) => new AssistantsApiToolChoiceOptionMode(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is AssistantsApiToolChoiceOptionMode other && Equals(other); + /// + public bool Equals(AssistantsApiToolChoiceOptionMode 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsClient.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsClient.cs index c85db38a83b6..f0baf2a07e15 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsClient.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsClient.cs @@ -39,7 +39,7 @@ protected AssistantsClient() } /// Creates a new assistant. - /// Body parameter. + /// The request details to use when creating a new assistant. /// The cancellation token to use. /// is null. public virtual async Task> CreateAssistantAsync(AssistantCreationOptions body, CancellationToken cancellationToken = default) @@ -53,7 +53,7 @@ public virtual async Task> CreateAssistantAsync(AssistantCre } /// Creates a new assistant. - /// Body parameter. + /// The request details to use when creating a new assistant. /// The cancellation token to use. /// is null. public virtual Response CreateAssistant(AssistantCreationOptions body, CancellationToken cancellationToken = default) @@ -136,7 +136,7 @@ internal virtual Response CreateAssistant(RequestContent content, RequestContext /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The cancellation token to use. internal virtual async Task> InternalGetAssistantsAsync(int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) { @@ -149,7 +149,7 @@ internal virtual async Task> Int /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The cancellation token to use. internal virtual Response InternalGetAssistants(int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) { @@ -176,7 +176,7 @@ internal virtual Response InternalGetAssi /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. /// Service returned a non-success status code. /// The response returned from the service. @@ -214,7 +214,7 @@ internal virtual async Task InternalGetAssistantsAsync(int? limit, str /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. /// Service returned a non-success status code. /// The response returned from the service. @@ -332,7 +332,7 @@ internal virtual Response GetAssistant(string assistantId, RequestContext contex /// Modifies an existing assistant. /// The ID of the assistant to modify. - /// Body parameter. + /// The request details to use when modifying an existing assistant. /// The cancellation token to use. /// or is null. /// is an empty string, and was expected to be non-empty. @@ -349,7 +349,7 @@ public virtual async Task> UpdateAssistantAsync(string assis /// Modifies an existing assistant. /// The ID of the assistant to modify. - /// Body parameter. + /// The request details to use when modifying an existing assistant. /// The cancellation token to use. /// or is null. /// is an empty string, and was expected to be non-empty. @@ -542,42 +542,36 @@ internal virtual Response InternalDeleteAssistant(string assistantId, RequestCon } } - /// Attaches a previously uploaded file to an assistant for use by tools that can read files. - /// The ID of the assistant to attach the file to. - /// The ID of the previously uploaded file to attach. + /// Creates a new thread. Threads contain messages and can be run by assistants. + /// The details used to create a new assistant thread. /// The cancellation token to use. - /// or is null. - /// is an empty string, and was expected to be non-empty. - public virtual async Task> LinkAssistantFileAsync(string assistantId, string fileId, CancellationToken cancellationToken = default) + /// is null. + public virtual async Task> CreateThreadAsync(AssistantThreadCreationOptions body, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); - Argument.AssertNotNull(fileId, nameof(fileId)); + Argument.AssertNotNull(body, nameof(body)); - CreateAssistantFileRequest createAssistantFileRequest = new CreateAssistantFileRequest(fileId, null); + using RequestContent content = body.ToRequestContent(); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await LinkAssistantFileAsync(assistantId, createAssistantFileRequest.ToRequestContent(), context).ConfigureAwait(false); - return Response.FromValue(AssistantFile.FromResponse(response), response); + Response response = await CreateThreadAsync(content, context).ConfigureAwait(false); + return Response.FromValue(AssistantThread.FromResponse(response), response); } - /// Attaches a previously uploaded file to an assistant for use by tools that can read files. - /// The ID of the assistant to attach the file to. - /// The ID of the previously uploaded file to attach. + /// Creates a new thread. Threads contain messages and can be run by assistants. + /// The details used to create a new assistant thread. /// The cancellation token to use. - /// or is null. - /// is an empty string, and was expected to be non-empty. - public virtual Response LinkAssistantFile(string assistantId, string fileId, CancellationToken cancellationToken = default) + /// is null. + public virtual Response CreateThread(AssistantThreadCreationOptions body, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); - Argument.AssertNotNull(fileId, nameof(fileId)); + Argument.AssertNotNull(body, nameof(body)); - CreateAssistantFileRequest createAssistantFileRequest = new CreateAssistantFileRequest(fileId, null); + using RequestContent content = body.ToRequestContent(); RequestContext context = FromCancellationToken(cancellationToken); - Response response = LinkAssistantFile(assistantId, createAssistantFileRequest.ToRequestContent(), context); - return Response.FromValue(AssistantFile.FromResponse(response), response); + Response response = CreateThread(content, context); + return Response.FromValue(AssistantThread.FromResponse(response), response); } /// - /// [Protocol Method] Attaches a previously uploaded file to an assistant for use by tools that can read files. + /// [Protocol Method] Creates a new thread. Threads contain messages and can be run by assistants. /// /// /// @@ -586,23 +580,20 @@ public virtual Response LinkAssistantFile(string assistantId, str /// /// /// - /// The ID of the assistant to attach the file to. /// The content to send as the body of the request. /// 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. + /// is null. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual async Task LinkAssistantFileAsync(string assistantId, RequestContent content, RequestContext context = null) + internal virtual async Task CreateThreadAsync(RequestContent content, RequestContext context = null) { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.LinkAssistantFile"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateThread"); scope.Start(); try { - using HttpMessage message = CreateLinkAssistantFileRequest(assistantId, content, context); + using HttpMessage message = CreateCreateThreadRequest(content, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -613,7 +604,7 @@ internal virtual async Task LinkAssistantFileAsync(string assistantId, } /// - /// [Protocol Method] Attaches a previously uploaded file to an assistant for use by tools that can read files. + /// [Protocol Method] Creates a new thread. Threads contain messages and can be run by assistants. /// /// /// @@ -622,23 +613,20 @@ internal virtual async Task LinkAssistantFileAsync(string assistantId, /// /// /// - /// The ID of the assistant to attach the file to. /// The content to send as the body of the request. /// 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. + /// is null. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual Response LinkAssistantFile(string assistantId, RequestContent content, RequestContext context = null) + internal virtual Response CreateThread(RequestContent content, RequestContext context = null) { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.LinkAssistantFile"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateThread"); scope.Start(); try { - using HttpMessage message = CreateLinkAssistantFileRequest(assistantId, content, context); + using HttpMessage message = CreateCreateThreadRequest(content, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -648,76 +636,59 @@ internal virtual Response LinkAssistantFile(string assistantId, RequestContent c } } - /// Gets a list of files attached to a specific assistant, as used by tools that can read files. - /// The ID of the assistant to retrieve the list of attached files for. - /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. - /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// Gets information about an existing thread. + /// The ID of the thread to retrieve information about. /// The cancellation token to use. - /// is null. - /// is an empty string, and was expected to be non-empty. - internal virtual async Task> InternalGetAssistantFilesAsync(string assistantId, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetThreadAsync(string threadId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await InternalGetAssistantFilesAsync(assistantId, limit, order?.ToString(), after, before, context).ConfigureAwait(false); - return Response.FromValue(InternalOpenAIPageableListOfAssistantFile.FromResponse(response), response); + Response response = await GetThreadAsync(threadId, context).ConfigureAwait(false); + return Response.FromValue(AssistantThread.FromResponse(response), response); } - /// Gets a list of files attached to a specific assistant, as used by tools that can read files. - /// The ID of the assistant to retrieve the list of attached files for. - /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. - /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// Gets information about an existing thread. + /// The ID of the thread to retrieve information about. /// The cancellation token to use. - /// is null. - /// is an empty string, and was expected to be non-empty. - internal virtual Response InternalGetAssistantFiles(string assistantId, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response GetThread(string threadId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = InternalGetAssistantFiles(assistantId, limit, order?.ToString(), after, before, context); - return Response.FromValue(InternalOpenAIPageableListOfAssistantFile.FromResponse(response), response); + Response response = GetThread(threadId, context); + return Response.FromValue(AssistantThread.FromResponse(response), response); } /// - /// [Protocol Method] Gets a list of files attached to a specific assistant, as used by tools that can read files. + /// [Protocol Method] Gets information about an existing thread. /// /// /// /// 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 ID of the assistant to retrieve the list of attached files for. - /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". - /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// The ID of the thread to retrieve information about. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// is null. - /// is an empty string, and was expected to be non-empty. + /// 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. - internal virtual async Task InternalGetAssistantFilesAsync(string assistantId, int? limit, string order, string after, string before, RequestContext context) + internal virtual async Task GetThreadAsync(string threadId, RequestContext context) { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalGetAssistantFiles"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetThread"); scope.Start(); try { - using HttpMessage message = CreateInternalGetAssistantFilesRequest(assistantId, limit, order, after, before, context); + using HttpMessage message = CreateGetThreadRequest(threadId, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -728,39 +699,30 @@ internal virtual async Task InternalGetAssistantFilesAsync(string assi } /// - /// [Protocol Method] Gets a list of files attached to a specific assistant, as used by tools that can read files. + /// [Protocol Method] Gets information about an existing thread. /// /// /// /// 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 ID of the assistant to retrieve the list of attached files for. - /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". - /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// The ID of the thread to retrieve information about. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// is null. - /// is an empty string, and was expected to be non-empty. + /// 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. - internal virtual Response InternalGetAssistantFiles(string assistantId, int? limit, string order, string after, string before, RequestContext context) + internal virtual Response GetThread(string threadId, RequestContext context) { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalGetAssistantFiles"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetThread"); scope.Start(); try { - using HttpMessage message = CreateInternalGetAssistantFilesRequest(assistantId, limit, order, after, before, context); + using HttpMessage message = CreateGetThreadRequest(threadId, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -770,40 +732,42 @@ internal virtual Response InternalGetAssistantFiles(string assistantId, int? lim } } - /// Retrieves a file attached to an assistant. - /// The ID of the assistant associated with the attached file. - /// The ID of the file to retrieve. + /// Modifies an existing thread. + /// The ID of the thread to modify. + /// The details used to update an existing assistant thread. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - public virtual async Task> GetAssistantFileAsync(string assistantId, string fileId, CancellationToken cancellationToken = default) + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> UpdateThreadAsync(string threadId, UpdateAssistantThreadOptions body, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNull(body, nameof(body)); + using RequestContent content = body.ToRequestContent(); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await GetAssistantFileAsync(assistantId, fileId, context).ConfigureAwait(false); - return Response.FromValue(AssistantFile.FromResponse(response), response); + Response response = await UpdateThreadAsync(threadId, content, context).ConfigureAwait(false); + return Response.FromValue(AssistantThread.FromResponse(response), response); } - /// Retrieves a file attached to an assistant. - /// The ID of the assistant associated with the attached file. - /// The ID of the file to retrieve. + /// Modifies an existing thread. + /// The ID of the thread to modify. + /// The details used to update an existing assistant thread. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - public virtual Response GetAssistantFile(string assistantId, string fileId, CancellationToken cancellationToken = default) + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response UpdateThread(string threadId, UpdateAssistantThreadOptions body, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNull(body, nameof(body)); + using RequestContent content = body.ToRequestContent(); RequestContext context = FromCancellationToken(cancellationToken); - Response response = GetAssistantFile(assistantId, fileId, context); - return Response.FromValue(AssistantFile.FromResponse(response), response); + Response response = UpdateThread(threadId, content, context); + return Response.FromValue(AssistantThread.FromResponse(response), response); } /// - /// [Protocol Method] Retrieves a file attached to an assistant. + /// [Protocol Method] Modifies an existing thread. /// /// /// @@ -812,23 +776,23 @@ public virtual Response GetAssistantFile(string assistantId, stri /// /// /// - /// The ID of the assistant associated with the attached file. - /// The ID of the file to retrieve. + /// The ID of the thread to modify. + /// The content to send as the body of the request. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// or is null. - /// or is an empty string, and was expected to be non-empty. + /// 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. - internal virtual async Task GetAssistantFileAsync(string assistantId, string fileId, RequestContext context) + internal virtual async Task UpdateThreadAsync(string threadId, RequestContent content, RequestContext context = null) { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetAssistantFile"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.UpdateThread"); scope.Start(); try { - using HttpMessage message = CreateGetAssistantFileRequest(assistantId, fileId, context); + using HttpMessage message = CreateUpdateThreadRequest(threadId, content, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -839,7 +803,7 @@ internal virtual async Task GetAssistantFileAsync(string assistantId, } /// - /// [Protocol Method] Retrieves a file attached to an assistant. + /// [Protocol Method] Modifies an existing thread. /// /// /// @@ -848,23 +812,23 @@ internal virtual async Task GetAssistantFileAsync(string assistantId, /// /// /// - /// The ID of the assistant associated with the attached file. - /// The ID of the file to retrieve. + /// The ID of the thread to modify. + /// The content to send as the body of the request. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// or is null. - /// or is an empty string, and was expected to be non-empty. + /// 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. - internal virtual Response GetAssistantFile(string assistantId, string fileId, RequestContext context) + internal virtual Response UpdateThread(string threadId, RequestContent content, RequestContext context = null) { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetAssistantFile"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.UpdateThread"); scope.Start(); try { - using HttpMessage message = CreateGetAssistantFileRequest(assistantId, fileId, context); + using HttpMessage message = CreateUpdateThreadRequest(threadId, content, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -874,47 +838,36 @@ internal virtual Response GetAssistantFile(string assistantId, string fileId, Re } } - /// - /// Unlinks a previously attached file from an assistant, rendering it unavailable for use by tools that can read - /// files. - /// - /// The ID of the assistant from which the specified file should be unlinked. - /// The ID of the file to unlink from the specified assistant. + /// Deletes an existing thread. + /// The ID of the thread to delete. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - internal virtual async Task> InternalUnlinkAssistantFileAsync(string assistantId, string fileId, CancellationToken cancellationToken = default) + /// is null. + /// is an empty string, and was expected to be non-empty. + internal virtual async Task> InternalDeleteThreadAsync(string threadId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await InternalUnlinkAssistantFileAsync(assistantId, fileId, context).ConfigureAwait(false); - return Response.FromValue(InternalAssistantFileDeletionStatus.FromResponse(response), response); + Response response = await InternalDeleteThreadAsync(threadId, context).ConfigureAwait(false); + return Response.FromValue(ThreadDeletionStatus.FromResponse(response), response); } - /// - /// Unlinks a previously attached file from an assistant, rendering it unavailable for use by tools that can read - /// files. - /// - /// The ID of the assistant from which the specified file should be unlinked. - /// The ID of the file to unlink from the specified assistant. + /// Deletes an existing thread. + /// The ID of the thread to delete. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - internal virtual Response InternalUnlinkAssistantFile(string assistantId, string fileId, CancellationToken cancellationToken = default) + /// is null. + /// is an empty string, and was expected to be non-empty. + internal virtual Response InternalDeleteThread(string threadId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = InternalUnlinkAssistantFile(assistantId, fileId, context); - return Response.FromValue(InternalAssistantFileDeletionStatus.FromResponse(response), response); + Response response = InternalDeleteThread(threadId, context); + return Response.FromValue(ThreadDeletionStatus.FromResponse(response), response); } /// - /// [Protocol Method] Unlinks a previously attached file from an assistant, rendering it unavailable for use by tools that can read - /// files. + /// [Protocol Method] Deletes an existing thread. /// /// /// @@ -923,28 +876,26 @@ internal virtual Response InternalUnlinkAss /// /// /// - /// Please try the simpler convenience overload with strongly typed models first. + /// Please try the simpler convenience overload with strongly typed models first. /// /// /// /// - /// The ID of the assistant from which the specified file should be unlinked. - /// The ID of the file to unlink from the specified assistant. + /// The ID of the thread to delete. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// or is null. - /// or is an empty string, and was expected to be non-empty. + /// 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. - internal virtual async Task InternalUnlinkAssistantFileAsync(string assistantId, string fileId, RequestContext context) + internal virtual async Task InternalDeleteThreadAsync(string threadId, RequestContext context) { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalUnlinkAssistantFile"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalDeleteThread"); scope.Start(); try { - using HttpMessage message = CreateInternalUnlinkAssistantFileRequest(assistantId, fileId, context); + using HttpMessage message = CreateInternalDeleteThreadRequest(threadId, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -955,8 +906,7 @@ internal virtual async Task InternalUnlinkAssistantFileAsync(string as } /// - /// [Protocol Method] Unlinks a previously attached file from an assistant, rendering it unavailable for use by tools that can read - /// files. + /// [Protocol Method] Deletes an existing thread. /// /// /// @@ -965,28 +915,26 @@ internal virtual async Task InternalUnlinkAssistantFileAsync(string as /// /// /// - /// Please try the simpler convenience overload with strongly typed models first. + /// Please try the simpler convenience overload with strongly typed models first. /// /// /// /// - /// The ID of the assistant from which the specified file should be unlinked. - /// The ID of the file to unlink from the specified assistant. + /// The ID of the thread to delete. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// or is null. - /// or is an empty string, and was expected to be non-empty. + /// 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. - internal virtual Response InternalUnlinkAssistantFile(string assistantId, string fileId, RequestContext context) + internal virtual Response InternalDeleteThread(string threadId, RequestContext context) { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalUnlinkAssistantFile"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalDeleteThread"); scope.Start(); try { - using HttpMessage message = CreateInternalUnlinkAssistantFileRequest(assistantId, fileId, context); + using HttpMessage message = CreateInternalDeleteThreadRequest(threadId, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -996,36 +944,42 @@ internal virtual Response InternalUnlinkAssistantFile(string assistantId, string } } - /// Creates a new thread. Threads contain messages and can be run by assistants. - /// Body parameter. + /// Creates a new message on a specified thread. + /// The ID of the thread to create the new message on. + /// A single message within an assistant thread, as provided during that thread's creation for its initial state. /// The cancellation token to use. - /// is null. - public virtual async Task> CreateThreadAsync(AssistantThreadCreationOptions body, CancellationToken cancellationToken = default) + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> CreateMessageAsync(string threadId, ThreadMessageOptions body, CancellationToken cancellationToken = default) { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); Argument.AssertNotNull(body, nameof(body)); using RequestContent content = body.ToRequestContent(); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await CreateThreadAsync(content, context).ConfigureAwait(false); - return Response.FromValue(AssistantThread.FromResponse(response), response); + Response response = await CreateMessageAsync(threadId, content, context).ConfigureAwait(false); + return Response.FromValue(ThreadMessage.FromResponse(response), response); } - /// Creates a new thread. Threads contain messages and can be run by assistants. - /// Body parameter. + /// Creates a new message on a specified thread. + /// The ID of the thread to create the new message on. + /// A single message within an assistant thread, as provided during that thread's creation for its initial state. /// The cancellation token to use. - /// is null. - public virtual Response CreateThread(AssistantThreadCreationOptions body, CancellationToken cancellationToken = default) + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response CreateMessage(string threadId, ThreadMessageOptions body, CancellationToken cancellationToken = default) { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); Argument.AssertNotNull(body, nameof(body)); using RequestContent content = body.ToRequestContent(); RequestContext context = FromCancellationToken(cancellationToken); - Response response = CreateThread(content, context); - return Response.FromValue(AssistantThread.FromResponse(response), response); + Response response = CreateMessage(threadId, content, context); + return Response.FromValue(ThreadMessage.FromResponse(response), response); } /// - /// [Protocol Method] Creates a new thread. Threads contain messages and can be run by assistants. + /// [Protocol Method] Creates a new message on a specified thread. /// /// /// @@ -1034,20 +988,23 @@ public virtual Response CreateThread(AssistantThreadCreationOpt /// /// /// + /// The ID of the thread to create the new message on. /// The content to send as the body of the request. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// is null. + /// 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. - internal virtual async Task CreateThreadAsync(RequestContent content, RequestContext context = null) + internal virtual async Task CreateMessageAsync(string threadId, RequestContent content, RequestContext context = null) { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateThread"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateMessage"); scope.Start(); try { - using HttpMessage message = CreateCreateThreadRequest(content, context); + using HttpMessage message = CreateCreateMessageRequest(threadId, content, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -1058,7 +1015,7 @@ internal virtual async Task CreateThreadAsync(RequestContent content, } /// - /// [Protocol Method] Creates a new thread. Threads contain messages and can be run by assistants. + /// [Protocol Method] Creates a new message on a specified thread. /// /// /// @@ -1067,20 +1024,23 @@ internal virtual async Task CreateThreadAsync(RequestContent content, /// /// /// + /// The ID of the thread to create the new message on. /// The content to send as the body of the request. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// is null. + /// 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. - internal virtual Response CreateThread(RequestContent content, RequestContext context = null) + internal virtual Response CreateMessage(string threadId, RequestContent content, RequestContext context = null) { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateThread"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateMessage"); scope.Start(); try { - using HttpMessage message = CreateCreateThreadRequest(content, context); + using HttpMessage message = CreateCreateMessageRequest(threadId, content, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -1090,59 +1050,79 @@ internal virtual Response CreateThread(RequestContent content, RequestContext co } } - /// Gets information about an existing thread. - /// The ID of the thread to retrieve information about. + /// Gets a list of messages that exist on a thread. + /// The ID of the thread to list messages from. + /// Filter messages by the run ID that generated them. + /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. + /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The cancellation token to use. /// is null. /// is an empty string, and was expected to be non-empty. - public virtual async Task> GetThreadAsync(string threadId, CancellationToken cancellationToken = default) + internal virtual async Task> InternalGetMessagesAsync(string threadId, string runId = null, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await GetThreadAsync(threadId, context).ConfigureAwait(false); - return Response.FromValue(AssistantThread.FromResponse(response), response); + Response response = await InternalGetMessagesAsync(threadId, runId, limit, order?.ToString(), after, before, context).ConfigureAwait(false); + return Response.FromValue(InternalOpenAIPageableListOfThreadMessage.FromResponse(response), response); } - /// Gets information about an existing thread. - /// The ID of the thread to retrieve information about. + /// Gets a list of messages that exist on a thread. + /// The ID of the thread to list messages from. + /// Filter messages by the run ID that generated them. + /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. + /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The cancellation token to use. /// is null. /// is an empty string, and was expected to be non-empty. - public virtual Response GetThread(string threadId, CancellationToken cancellationToken = default) + internal virtual Response InternalGetMessages(string threadId, string runId = null, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = GetThread(threadId, context); - return Response.FromValue(AssistantThread.FromResponse(response), response); + Response response = InternalGetMessages(threadId, runId, limit, order?.ToString(), after, before, context); + return Response.FromValue(InternalOpenAIPageableListOfThreadMessage.FromResponse(response), response); } /// - /// [Protocol Method] Gets information about an existing thread. + /// [Protocol Method] Gets a list of messages that exist on a thread. /// /// /// /// 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 ID of the thread to retrieve information about. + /// The ID of the thread to list messages from. + /// Filter messages by the run ID that generated them. + /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". + /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. /// 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. - internal virtual async Task GetThreadAsync(string threadId, RequestContext context) + internal virtual async Task InternalGetMessagesAsync(string threadId, string runId, int? limit, string order, string after, string before, RequestContext context) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetThread"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalGetMessages"); scope.Start(); try { - using HttpMessage message = CreateGetThreadRequest(threadId, context); + using HttpMessage message = CreateInternalGetMessagesRequest(threadId, runId, limit, order, after, before, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -1153,30 +1133,40 @@ internal virtual async Task GetThreadAsync(string threadId, RequestCon } /// - /// [Protocol Method] Gets information about an existing thread. + /// [Protocol Method] Gets a list of messages that exist on a thread. /// /// /// /// 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 ID of the thread to retrieve information about. + /// The ID of the thread to list messages from. + /// Filter messages by the run ID that generated them. + /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". + /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. /// 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. - internal virtual Response GetThread(string threadId, RequestContext context) + internal virtual Response InternalGetMessages(string threadId, string runId, int? limit, string order, string after, string before, RequestContext context) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetThread"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalGetMessages"); scope.Start(); try { - using HttpMessage message = CreateGetThreadRequest(threadId, context); + using HttpMessage message = CreateInternalGetMessagesRequest(threadId, runId, limit, order, after, before, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -1186,40 +1176,40 @@ internal virtual Response GetThread(string threadId, RequestContext context) } } - /// Modifies an existing thread. - /// The ID of the thread to modify. - /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. + /// Gets an existing message from an existing thread. + /// The ID of the thread to retrieve the specified message from. + /// The ID of the message to retrieve from the specified thread. /// The cancellation token to use. - /// is null. - /// is an empty string, and was expected to be non-empty. - public virtual async Task> UpdateThreadAsync(string threadId, IReadOnlyDictionary metadata = null, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual async Task> GetMessageAsync(string threadId, string messageId, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); - UpdateThreadRequest updateThreadRequest = new UpdateThreadRequest(metadata ?? new ChangeTrackingDictionary(), null); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await UpdateThreadAsync(threadId, updateThreadRequest.ToRequestContent(), context).ConfigureAwait(false); - return Response.FromValue(AssistantThread.FromResponse(response), response); + Response response = await GetMessageAsync(threadId, messageId, context).ConfigureAwait(false); + return Response.FromValue(ThreadMessage.FromResponse(response), response); } - /// Modifies an existing thread. - /// The ID of the thread to modify. - /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. + /// Gets an existing message from an existing thread. + /// The ID of the thread to retrieve the specified message from. + /// The ID of the message to retrieve from the specified thread. /// The cancellation token to use. - /// is null. - /// is an empty string, and was expected to be non-empty. - public virtual Response UpdateThread(string threadId, IReadOnlyDictionary metadata = null, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual Response GetMessage(string threadId, string messageId, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); - UpdateThreadRequest updateThreadRequest = new UpdateThreadRequest(metadata ?? new ChangeTrackingDictionary(), null); RequestContext context = FromCancellationToken(cancellationToken); - Response response = UpdateThread(threadId, updateThreadRequest.ToRequestContent(), context); - return Response.FromValue(AssistantThread.FromResponse(response), response); + Response response = GetMessage(threadId, messageId, context); + return Response.FromValue(ThreadMessage.FromResponse(response), response); } /// - /// [Protocol Method] Modifies an existing thread. + /// [Protocol Method] Gets an existing message from an existing thread. /// /// /// @@ -1228,23 +1218,23 @@ public virtual Response UpdateThread(string threadId, IReadOnly /// /// /// - /// The ID of the thread to modify. - /// The content to send as the body of the request. + /// The ID of the thread to retrieve the specified message from. + /// The ID of the message to retrieve from the specified thread. /// 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. + /// or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual async Task UpdateThreadAsync(string threadId, RequestContent content, RequestContext context = null) + internal virtual async Task GetMessageAsync(string threadId, string messageId, RequestContext context) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.UpdateThread"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetMessage"); scope.Start(); try { - using HttpMessage message = CreateUpdateThreadRequest(threadId, content, context); + using HttpMessage message = CreateGetMessageRequest(threadId, messageId, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -1255,7 +1245,7 @@ internal virtual async Task UpdateThreadAsync(string threadId, Request } /// - /// [Protocol Method] Modifies an existing thread. + /// [Protocol Method] Gets an existing message from an existing thread. /// /// /// @@ -1264,23 +1254,23 @@ internal virtual async Task UpdateThreadAsync(string threadId, Request /// /// /// - /// The ID of the thread to modify. - /// The content to send as the body of the request. + /// The ID of the thread to retrieve the specified message from. + /// The ID of the message to retrieve from the specified thread. /// 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. + /// or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual Response UpdateThread(string threadId, RequestContent content, RequestContext context = null) + internal virtual Response GetMessage(string threadId, string messageId, RequestContext context) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.UpdateThread"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetMessage"); scope.Start(); try { - using HttpMessage message = CreateUpdateThreadRequest(threadId, content, context); + using HttpMessage message = CreateGetMessageRequest(threadId, messageId, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -1290,64 +1280,71 @@ internal virtual Response UpdateThread(string threadId, RequestContent content, } } - /// Deletes an existing thread. - /// The ID of the thread to delete. + /// Modifies an existing message on an existing thread. + /// The ID of the thread containing the specified message to modify. + /// The ID of the message to modify on the specified thread. + /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// The cancellation token to use. - /// is null. - /// is an empty string, and was expected to be non-empty. - internal virtual async Task> InternalDeleteThreadAsync(string threadId, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual async Task> UpdateMessageAsync(string threadId, string messageId, IReadOnlyDictionary metadata = null, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); + UpdateMessageRequest updateMessageRequest = new UpdateMessageRequest(metadata ?? new ChangeTrackingDictionary(), null); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await InternalDeleteThreadAsync(threadId, context).ConfigureAwait(false); - return Response.FromValue(ThreadDeletionStatus.FromResponse(response), response); + Response response = await UpdateMessageAsync(threadId, messageId, updateMessageRequest.ToRequestContent(), context).ConfigureAwait(false); + return Response.FromValue(ThreadMessage.FromResponse(response), response); } - /// Deletes an existing thread. - /// The ID of the thread to delete. + /// Modifies an existing message on an existing thread. + /// The ID of the thread containing the specified message to modify. + /// The ID of the message to modify on the specified thread. + /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// The cancellation token to use. - /// is null. - /// is an empty string, and was expected to be non-empty. - internal virtual Response InternalDeleteThread(string threadId, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual Response UpdateMessage(string threadId, string messageId, IReadOnlyDictionary metadata = null, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); + UpdateMessageRequest updateMessageRequest = new UpdateMessageRequest(metadata ?? new ChangeTrackingDictionary(), null); RequestContext context = FromCancellationToken(cancellationToken); - Response response = InternalDeleteThread(threadId, context); - return Response.FromValue(ThreadDeletionStatus.FromResponse(response), response); + Response response = UpdateMessage(threadId, messageId, updateMessageRequest.ToRequestContent(), context); + return Response.FromValue(ThreadMessage.FromResponse(response), response); } /// - /// [Protocol Method] Deletes an existing thread. + /// [Protocol Method] Modifies an existing message on an existing thread. /// /// /// /// 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 ID of the thread to delete. + /// The ID of the thread containing the specified message to modify. + /// The ID of the message to modify on the specified thread. + /// The content to send as the body of the request. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// is null. - /// is an empty string, and was expected to be non-empty. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual async Task InternalDeleteThreadAsync(string threadId, RequestContext context) + internal virtual async Task UpdateMessageAsync(string threadId, string messageId, RequestContent content, RequestContext context = null) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); + Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalDeleteThread"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.UpdateMessage"); scope.Start(); try { - using HttpMessage message = CreateInternalDeleteThreadRequest(threadId, context); + using HttpMessage message = CreateUpdateMessageRequest(threadId, messageId, content, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -1358,35 +1355,34 @@ internal virtual async Task InternalDeleteThreadAsync(string threadId, } /// - /// [Protocol Method] Deletes an existing thread. + /// [Protocol Method] Modifies an existing message on an existing thread. /// /// /// /// 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 ID of the thread to delete. + /// The ID of the thread containing the specified message to modify. + /// The ID of the message to modify on the specified thread. + /// The content to send as the body of the request. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// is null. - /// is an empty string, and was expected to be non-empty. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual Response InternalDeleteThread(string threadId, RequestContext context) + internal virtual Response UpdateMessage(string threadId, string messageId, RequestContent content, RequestContext context = null) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); + Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalDeleteThread"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.UpdateMessage"); scope.Start(); try { - using HttpMessage message = CreateInternalDeleteThreadRequest(threadId, context); + using HttpMessage message = CreateUpdateMessageRequest(threadId, messageId, content, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -1396,48 +1392,44 @@ internal virtual Response InternalDeleteThread(string threadId, RequestContext c } } - /// Creates a new message on a specified thread. - /// The ID of the thread to create the new message on. - /// The role to associate with the new message. - /// The textual content for the new message. - /// A list of up to 10 file IDs to associate with the message, as used by tools like 'code_interpreter' or 'retrieval' that can read files. - /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. + /// Creates a new run for an assistant thread. + /// The ID of the thread to run. + /// The details used when creating a new run of an assistant thread. + /// A list of additional fields to include in the response. /// The cancellation token to use. - /// or is null. + /// or is null. /// is an empty string, and was expected to be non-empty. - public virtual async Task> CreateMessageAsync(string threadId, MessageRole role, string content, IEnumerable fileIds = null, IReadOnlyDictionary metadata = null, CancellationToken cancellationToken = default) + public virtual async Task> CreateRunAsync(string threadId, CreateRunOptions body, IEnumerable runInclude = null, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNull(body, nameof(body)); - CreateMessageRequest createMessageRequest = new CreateMessageRequest(role, content, fileIds?.ToList() as IReadOnlyList ?? new ChangeTrackingList(), metadata ?? new ChangeTrackingDictionary(), null); + using RequestContent content = body.ToRequestContent(); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await CreateMessageAsync(threadId, createMessageRequest.ToRequestContent(), context).ConfigureAwait(false); - return Response.FromValue(ThreadMessage.FromResponse(response), response); + Response response = await CreateRunAsync(threadId, content, runInclude, context).ConfigureAwait(false); + return Response.FromValue(ThreadRun.FromResponse(response), response); } - /// Creates a new message on a specified thread. - /// The ID of the thread to create the new message on. - /// The role to associate with the new message. - /// The textual content for the new message. - /// A list of up to 10 file IDs to associate with the message, as used by tools like 'code_interpreter' or 'retrieval' that can read files. - /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. + /// Creates a new run for an assistant thread. + /// The ID of the thread to run. + /// The details used when creating a new run of an assistant thread. + /// A list of additional fields to include in the response. /// The cancellation token to use. - /// or is null. + /// or is null. /// is an empty string, and was expected to be non-empty. - public virtual Response CreateMessage(string threadId, MessageRole role, string content, IEnumerable fileIds = null, IReadOnlyDictionary metadata = null, CancellationToken cancellationToken = default) + public virtual Response CreateRun(string threadId, CreateRunOptions body, IEnumerable runInclude = null, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNull(body, nameof(body)); - CreateMessageRequest createMessageRequest = new CreateMessageRequest(role, content, fileIds?.ToList() as IReadOnlyList ?? new ChangeTrackingList(), metadata ?? new ChangeTrackingDictionary(), null); + using RequestContent content = body.ToRequestContent(); RequestContext context = FromCancellationToken(cancellationToken); - Response response = CreateMessage(threadId, createMessageRequest.ToRequestContent(), context); - return Response.FromValue(ThreadMessage.FromResponse(response), response); + Response response = CreateRun(threadId, content, runInclude, context); + return Response.FromValue(ThreadRun.FromResponse(response), response); } /// - /// [Protocol Method] Creates a new message on a specified thread. + /// [Protocol Method] Creates a new run for an assistant thread. /// /// /// @@ -1446,23 +1438,24 @@ public virtual Response CreateMessage(string threadId, MessageRol /// /// /// - /// The ID of the thread to create the new message on. + /// The ID of the thread to run. /// The content to send as the body of the request. + /// A list of additional fields to include in the response. /// 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. - internal virtual async Task CreateMessageAsync(string threadId, RequestContent content, RequestContext context = null) + internal virtual async Task CreateRunAsync(string threadId, RequestContent content, IEnumerable runInclude = null, RequestContext context = null) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateMessage"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateRun"); scope.Start(); try { - using HttpMessage message = CreateCreateMessageRequest(threadId, content, context); + using HttpMessage message = CreateCreateRunRequest(threadId, content, runInclude, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -1473,7 +1466,7 @@ internal virtual async Task CreateMessageAsync(string threadId, Reques } /// - /// [Protocol Method] Creates a new message on a specified thread. + /// [Protocol Method] Creates a new run for an assistant thread. /// /// /// @@ -1482,23 +1475,24 @@ internal virtual async Task CreateMessageAsync(string threadId, Reques /// /// /// - /// The ID of the thread to create the new message on. + /// The ID of the thread to run. /// The content to send as the body of the request. + /// A list of additional fields to include in the response. /// 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. - internal virtual Response CreateMessage(string threadId, RequestContent content, RequestContext context = null) + internal virtual Response CreateRun(string threadId, RequestContent content, IEnumerable runInclude = null, RequestContext context = null) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateMessage"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateRun"); scope.Start(); try { - using HttpMessage message = CreateCreateMessageRequest(threadId, content, context); + using HttpMessage message = CreateCreateRunRequest(threadId, content, runInclude, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -1508,44 +1502,44 @@ internal virtual Response CreateMessage(string threadId, RequestContent content, } } - /// Gets a list of messages that exist on a thread. - /// The ID of the thread to list messages from. + /// Gets a list of runs for a specified thread. + /// The ID of the thread to list runs from. /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The cancellation token to use. /// is null. /// is an empty string, and was expected to be non-empty. - internal virtual async Task> InternalGetMessagesAsync(string threadId, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) + internal virtual async Task> InternalGetRunsAsync(string threadId, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await InternalGetMessagesAsync(threadId, limit, order?.ToString(), after, before, context).ConfigureAwait(false); - return Response.FromValue(InternalOpenAIPageableListOfThreadMessage.FromResponse(response), response); + Response response = await InternalGetRunsAsync(threadId, limit, order?.ToString(), after, before, context).ConfigureAwait(false); + return Response.FromValue(InternalOpenAIPageableListOfThreadRun.FromResponse(response), response); } - /// Gets a list of messages that exist on a thread. - /// The ID of the thread to list messages from. + /// Gets a list of runs for a specified thread. + /// The ID of the thread to list runs from. /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The cancellation token to use. /// is null. /// is an empty string, and was expected to be non-empty. - internal virtual Response InternalGetMessages(string threadId, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) + internal virtual Response InternalGetRuns(string threadId, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = InternalGetMessages(threadId, limit, order?.ToString(), after, before, context); - return Response.FromValue(InternalOpenAIPageableListOfThreadMessage.FromResponse(response), response); + Response response = InternalGetRuns(threadId, limit, order?.ToString(), after, before, context); + return Response.FromValue(InternalOpenAIPageableListOfThreadRun.FromResponse(response), response); } /// - /// [Protocol Method] Gets a list of messages that exist on a thread. + /// [Protocol Method] Gets a list of runs for a specified thread. /// /// /// @@ -1554,30 +1548,30 @@ internal virtual Response InternalGet /// /// /// - /// Please try the simpler convenience overload with strongly typed models first. + /// Please try the simpler convenience overload with strongly typed models first. /// /// /// /// - /// The ID of the thread to list messages from. + /// The ID of the thread to list runs from. /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. /// 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. - internal virtual async Task InternalGetMessagesAsync(string threadId, int? limit, string order, string after, string before, RequestContext context) + internal virtual async Task InternalGetRunsAsync(string threadId, int? limit, string order, string after, string before, RequestContext context) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalGetMessages"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalGetRuns"); scope.Start(); try { - using HttpMessage message = CreateInternalGetMessagesRequest(threadId, limit, order, after, before, context); + using HttpMessage message = CreateInternalGetRunsRequest(threadId, limit, order, after, before, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -1588,7 +1582,7 @@ internal virtual async Task InternalGetMessagesAsync(string threadId, } /// - /// [Protocol Method] Gets a list of messages that exist on a thread. + /// [Protocol Method] Gets a list of runs for a specified thread. /// /// /// @@ -1597,30 +1591,30 @@ internal virtual async Task InternalGetMessagesAsync(string threadId, /// /// /// - /// Please try the simpler convenience overload with strongly typed models first. + /// Please try the simpler convenience overload with strongly typed models first. /// /// /// /// - /// The ID of the thread to list messages from. + /// The ID of the thread to list runs from. /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. /// 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. - internal virtual Response InternalGetMessages(string threadId, int? limit, string order, string after, string before, RequestContext context) + internal virtual Response InternalGetRuns(string threadId, int? limit, string order, string after, string before, RequestContext context) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalGetMessages"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalGetRuns"); scope.Start(); try { - using HttpMessage message = CreateInternalGetMessagesRequest(threadId, limit, order, after, before, context); + using HttpMessage message = CreateInternalGetRunsRequest(threadId, limit, order, after, before, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -1630,40 +1624,40 @@ internal virtual Response InternalGetMessages(string threadId, int? limit, strin } } - /// Gets an existing message from an existing thread. - /// The ID of the thread to retrieve the specified message from. - /// The ID of the message to retrieve from the specified thread. + /// Gets an existing run from an existing thread. + /// The ID of the thread to retrieve run information from. + /// The ID of the thread to retrieve information about. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - public virtual async Task> GetMessageAsync(string threadId, string messageId, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual async Task> GetRunAsync(string threadId, string runId, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await GetMessageAsync(threadId, messageId, context).ConfigureAwait(false); - return Response.FromValue(ThreadMessage.FromResponse(response), response); + Response response = await GetRunAsync(threadId, runId, context).ConfigureAwait(false); + return Response.FromValue(ThreadRun.FromResponse(response), response); } - /// Gets an existing message from an existing thread. - /// The ID of the thread to retrieve the specified message from. - /// The ID of the message to retrieve from the specified thread. + /// Gets an existing run from an existing thread. + /// The ID of the thread to retrieve run information from. + /// The ID of the thread to retrieve information about. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - public virtual Response GetMessage(string threadId, string messageId, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual Response GetRun(string threadId, string runId, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = GetMessage(threadId, messageId, context); - return Response.FromValue(ThreadMessage.FromResponse(response), response); + Response response = GetRun(threadId, runId, context); + return Response.FromValue(ThreadRun.FromResponse(response), response); } /// - /// [Protocol Method] Gets an existing message from an existing thread. + /// [Protocol Method] Gets an existing run from an existing thread. /// /// /// @@ -1672,23 +1666,23 @@ public virtual Response GetMessage(string threadId, string messag /// /// /// - /// The ID of the thread to retrieve the specified message from. - /// The ID of the message to retrieve from the specified thread. + /// The ID of the thread to retrieve run information from. + /// The ID of the thread to retrieve information about. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// or is null. - /// or is an empty string, and was expected to be non-empty. + /// or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual async Task GetMessageAsync(string threadId, string messageId, RequestContext context) + internal virtual async Task GetRunAsync(string threadId, string runId, RequestContext context) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetMessage"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetRun"); scope.Start(); try { - using HttpMessage message = CreateGetMessageRequest(threadId, messageId, context); + using HttpMessage message = CreateGetRunRequest(threadId, runId, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -1699,7 +1693,7 @@ internal virtual async Task GetMessageAsync(string threadId, string me } /// - /// [Protocol Method] Gets an existing message from an existing thread. + /// [Protocol Method] Gets an existing run from an existing thread. /// /// /// @@ -1708,23 +1702,23 @@ internal virtual async Task GetMessageAsync(string threadId, string me /// /// /// - /// The ID of the thread to retrieve the specified message from. - /// The ID of the message to retrieve from the specified thread. + /// The ID of the thread to retrieve run information from. + /// The ID of the thread to retrieve information about. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// or is null. - /// or is an empty string, and was expected to be non-empty. + /// or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual Response GetMessage(string threadId, string messageId, RequestContext context) + internal virtual Response GetRun(string threadId, string runId, RequestContext context) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetMessage"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetRun"); scope.Start(); try { - using HttpMessage message = CreateGetMessageRequest(threadId, messageId, context); + using HttpMessage message = CreateGetRunRequest(threadId, runId, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -1734,44 +1728,44 @@ internal virtual Response GetMessage(string threadId, string messageId, RequestC } } - /// Modifies an existing message on an existing thread. - /// The ID of the thread containing the specified message to modify. - /// The ID of the message to modify on the specified thread. + /// Modifies an existing thread run. + /// The ID of the thread associated with the specified run. + /// The ID of the run to modify. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - public virtual async Task> UpdateMessageAsync(string threadId, string messageId, IReadOnlyDictionary metadata = null, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual async Task> UpdateRunAsync(string threadId, string runId, IReadOnlyDictionary metadata = null, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); - UpdateMessageRequest updateMessageRequest = new UpdateMessageRequest(metadata ?? new ChangeTrackingDictionary(), null); + UpdateRunRequest updateRunRequest = new UpdateRunRequest(metadata ?? new ChangeTrackingDictionary(), null); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await UpdateMessageAsync(threadId, messageId, updateMessageRequest.ToRequestContent(), context).ConfigureAwait(false); - return Response.FromValue(ThreadMessage.FromResponse(response), response); + Response response = await UpdateRunAsync(threadId, runId, updateRunRequest.ToRequestContent(), context).ConfigureAwait(false); + return Response.FromValue(ThreadRun.FromResponse(response), response); } - /// Modifies an existing message on an existing thread. - /// The ID of the thread containing the specified message to modify. - /// The ID of the message to modify on the specified thread. + /// Modifies an existing thread run. + /// The ID of the thread associated with the specified run. + /// The ID of the run to modify. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - public virtual Response UpdateMessage(string threadId, string messageId, IReadOnlyDictionary metadata = null, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual Response UpdateRun(string threadId, string runId, IReadOnlyDictionary metadata = null, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); - UpdateMessageRequest updateMessageRequest = new UpdateMessageRequest(metadata ?? new ChangeTrackingDictionary(), null); + UpdateRunRequest updateRunRequest = new UpdateRunRequest(metadata ?? new ChangeTrackingDictionary(), null); RequestContext context = FromCancellationToken(cancellationToken); - Response response = UpdateMessage(threadId, messageId, updateMessageRequest.ToRequestContent(), context); - return Response.FromValue(ThreadMessage.FromResponse(response), response); + Response response = UpdateRun(threadId, runId, updateRunRequest.ToRequestContent(), context); + return Response.FromValue(ThreadRun.FromResponse(response), response); } /// - /// [Protocol Method] Modifies an existing message on an existing thread. + /// [Protocol Method] Modifies an existing thread run. /// /// /// @@ -1780,25 +1774,25 @@ public virtual Response UpdateMessage(string threadId, string mes /// /// /// - /// The ID of the thread containing the specified message to modify. - /// The ID of the message to modify on the specified thread. + /// The ID of the thread associated with the specified run. + /// The ID of the run to modify. /// The content to send as the body of the request. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// , or is null. - /// or is an empty string, and was expected to be non-empty. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual async Task UpdateMessageAsync(string threadId, string messageId, RequestContent content, RequestContext context = null) + internal virtual async Task UpdateRunAsync(string threadId, string runId, RequestContent content, RequestContext context = null) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.UpdateMessage"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.UpdateRun"); scope.Start(); try { - using HttpMessage message = CreateUpdateMessageRequest(threadId, messageId, content, context); + using HttpMessage message = CreateUpdateRunRequest(threadId, runId, content, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -1809,7 +1803,7 @@ internal virtual async Task UpdateMessageAsync(string threadId, string } /// - /// [Protocol Method] Modifies an existing message on an existing thread. + /// [Protocol Method] Modifies an existing thread run. /// /// /// @@ -1818,25 +1812,25 @@ internal virtual async Task UpdateMessageAsync(string threadId, string /// /// /// - /// The ID of the thread containing the specified message to modify. - /// The ID of the message to modify on the specified thread. + /// The ID of the thread associated with the specified run. + /// The ID of the run to modify. /// The content to send as the body of the request. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// , or is null. - /// or is an empty string, and was expected to be non-empty. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual Response UpdateMessage(string threadId, string messageId, RequestContent content, RequestContext context = null) + internal virtual Response UpdateRun(string threadId, string runId, RequestContent content, RequestContext context = null) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.UpdateMessage"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.UpdateRun"); scope.Start(); try { - using HttpMessage message = CreateUpdateMessageRequest(threadId, messageId, content, context); + using HttpMessage message = CreateUpdateRunRequest(threadId, runId, content, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -1846,82 +1840,820 @@ internal virtual Response UpdateMessage(string threadId, string messageId, Reque } } - /// Gets a list of previously uploaded files associated with a message from a thread. - /// The ID of the thread containing the message to list files from. - /// The ID of the message to list files from. - /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. - /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// Submits outputs from tools as requested by tool calls in a run. Runs that need submitted tool outputs will have a status of 'requires_action' with a required_action.type of 'submit_tool_outputs'. + /// The ID of the thread that was run. + /// The ID of the run that requires tool outputs. + /// A list of tools for which the outputs are being submitted. + /// If `true`, returns a stream of events that happen during the Run as server-sent events, terminating when the Run enters a terminal state with a `data: [DONE]` message. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - internal virtual async Task> InternalGetMessageFilesAsync(string threadId, string messageId, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual async Task> SubmitToolOutputsToRunAsync(string threadId, string runId, IEnumerable toolOutputs, bool? stream = null, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNull(toolOutputs, nameof(toolOutputs)); + SubmitToolOutputsToRunRequest submitToolOutputsToRunRequest = new SubmitToolOutputsToRunRequest(toolOutputs.ToList(), stream, null); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await InternalGetMessageFilesAsync(threadId, messageId, limit, order?.ToString(), after, before, context).ConfigureAwait(false); - return Response.FromValue(InternalOpenAIPageableListOfMessageFile.FromResponse(response), response); + Response response = await SubmitToolOutputsToRunAsync(threadId, runId, submitToolOutputsToRunRequest.ToRequestContent(), context).ConfigureAwait(false); + return Response.FromValue(ThreadRun.FromResponse(response), response); } - /// Gets a list of previously uploaded files associated with a message from a thread. - /// The ID of the thread containing the message to list files from. - /// The ID of the message to list files from. - /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. - /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// Submits outputs from tools as requested by tool calls in a run. Runs that need submitted tool outputs will have a status of 'requires_action' with a required_action.type of 'submit_tool_outputs'. + /// The ID of the thread that was run. + /// The ID of the run that requires tool outputs. + /// A list of tools for which the outputs are being submitted. + /// If `true`, returns a stream of events that happen during the Run as server-sent events, terminating when the Run enters a terminal state with a `data: [DONE]` message. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - internal virtual Response InternalGetMessageFiles(string threadId, string messageId, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual Response SubmitToolOutputsToRun(string threadId, string runId, IEnumerable toolOutputs, bool? stream = null, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNull(toolOutputs, nameof(toolOutputs)); + SubmitToolOutputsToRunRequest submitToolOutputsToRunRequest = new SubmitToolOutputsToRunRequest(toolOutputs.ToList(), stream, null); RequestContext context = FromCancellationToken(cancellationToken); - Response response = InternalGetMessageFiles(threadId, messageId, limit, order?.ToString(), after, before, context); - return Response.FromValue(InternalOpenAIPageableListOfMessageFile.FromResponse(response), response); + Response response = SubmitToolOutputsToRun(threadId, runId, submitToolOutputsToRunRequest.ToRequestContent(), context); + return Response.FromValue(ThreadRun.FromResponse(response), response); } /// - /// [Protocol Method] Gets a list of previously uploaded files associated with a message from a thread. + /// [Protocol Method] Submits outputs from tools as requested by tool calls in a run. Runs that need submitted tool outputs will have a status of 'requires_action' with a required_action.type of 'submit_tool_outputs'. /// /// /// /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. /// /// + /// + /// + /// The ID of the thread that was run. + /// The ID of the run that requires tool outputs. + /// The content to send as the body of the request. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual async Task SubmitToolOutputsToRunAsync(string threadId, string runId, RequestContent content, RequestContext context = null) + { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.SubmitToolOutputsToRun"); + scope.Start(); + try + { + using HttpMessage message = CreateSubmitToolOutputsToRunRequest(threadId, runId, content, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Submits outputs from tools as requested by tool calls in a run. Runs that need submitted tool outputs will have a status of 'requires_action' with a required_action.type of 'submit_tool_outputs'. + /// /// /// - /// Please try the simpler convenience overload with strongly typed models first. + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. /// /// /// /// - /// The ID of the thread containing the message to list files from. - /// The ID of the message to list files from. - /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". - /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// The ID of the thread that was run. + /// The ID of the run that requires tool outputs. + /// The content to send as the body of the request. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual Response SubmitToolOutputsToRun(string threadId, string runId, RequestContent content, RequestContext context = null) + { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.SubmitToolOutputsToRun"); + scope.Start(); + try + { + using HttpMessage message = CreateSubmitToolOutputsToRunRequest(threadId, runId, content, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Cancels a run of an in progress thread. + /// The ID of the thread being run. + /// The ID of the run to cancel. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual async Task> CancelRunAsync(string threadId, string runId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await CancelRunAsync(threadId, runId, context).ConfigureAwait(false); + return Response.FromValue(ThreadRun.FromResponse(response), response); + } + + /// Cancels a run of an in progress thread. + /// The ID of the thread being run. + /// The ID of the run to cancel. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual Response CancelRun(string threadId, string runId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + + RequestContext context = FromCancellationToken(cancellationToken); + Response response = CancelRun(threadId, runId, context); + return Response.FromValue(ThreadRun.FromResponse(response), response); + } + + /// + /// [Protocol Method] Cancels a run of an in progress thread. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// The ID of the thread being run. + /// The ID of the run to cancel. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual async Task CancelRunAsync(string threadId, string runId, RequestContext context) + { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CancelRun"); + scope.Start(); + try + { + using HttpMessage message = CreateCancelRunRequest(threadId, runId, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Cancels a run of an in progress thread. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// The ID of the thread being run. + /// The ID of the run to cancel. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual Response CancelRun(string threadId, string runId, RequestContext context) + { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CancelRun"); + scope.Start(); + try + { + using HttpMessage message = CreateCancelRunRequest(threadId, runId, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Creates a new assistant thread and immediately starts a run using that new thread. + /// The details used when creating and immediately running a new assistant thread. + /// The cancellation token to use. + /// is null. + public virtual async Task> CreateThreadAndRunAsync(CreateAndRunThreadOptions body, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(body, nameof(body)); + + using RequestContent content = body.ToRequestContent(); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await CreateThreadAndRunAsync(content, context).ConfigureAwait(false); + return Response.FromValue(ThreadRun.FromResponse(response), response); + } + + /// Creates a new assistant thread and immediately starts a run using that new thread. + /// The details used when creating and immediately running a new assistant thread. + /// The cancellation token to use. + /// is null. + public virtual Response CreateThreadAndRun(CreateAndRunThreadOptions body, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(body, nameof(body)); + + using RequestContent content = body.ToRequestContent(); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = CreateThreadAndRun(content, context); + return Response.FromValue(ThreadRun.FromResponse(response), response); + } + + /// + /// [Protocol Method] Creates a new assistant thread and immediately starts a run using that new thread. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// The content to send as the body of the request. + /// 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. + internal virtual async Task CreateThreadAndRunAsync(RequestContent content, RequestContext context = null) + { + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateThreadAndRun"); + scope.Start(); + try + { + using HttpMessage message = CreateCreateThreadAndRunRequest(content, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Creates a new assistant thread and immediately starts a run using that new thread. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// The content to send as the body of the request. + /// 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. + internal virtual Response CreateThreadAndRun(RequestContent content, RequestContext context = null) + { + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateThreadAndRun"); + scope.Start(); + try + { + using HttpMessage message = CreateCreateThreadAndRunRequest(content, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Gets a single run step from a thread run. + /// The ID of the thread that was run. + /// The ID of the specific run to retrieve the step from. + /// The ID of the step to retrieve information about. + /// A list of additional fields to include in the response. + /// The cancellation token to use. + /// , or is null. + /// , or is an empty string, and was expected to be non-empty. + public virtual async Task> GetRunStepAsync(string threadId, string runId, string stepId, IEnumerable runInclude = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNullOrEmpty(stepId, nameof(stepId)); + + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await GetRunStepAsync(threadId, runId, stepId, runInclude, context).ConfigureAwait(false); + return Response.FromValue(RunStep.FromResponse(response), response); + } + + /// Gets a single run step from a thread run. + /// The ID of the thread that was run. + /// The ID of the specific run to retrieve the step from. + /// The ID of the step to retrieve information about. + /// A list of additional fields to include in the response. + /// The cancellation token to use. + /// , or is null. + /// , or is an empty string, and was expected to be non-empty. + public virtual Response GetRunStep(string threadId, string runId, string stepId, IEnumerable runInclude = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNullOrEmpty(stepId, nameof(stepId)); + + RequestContext context = FromCancellationToken(cancellationToken); + Response response = GetRunStep(threadId, runId, stepId, runInclude, context); + return Response.FromValue(RunStep.FromResponse(response), response); + } + + /// + /// [Protocol Method] Gets a single run step from a thread run. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// The ID of the thread that was run. + /// The ID of the specific run to retrieve the step from. + /// The ID of the step to retrieve information about. + /// A list of additional fields to include in the response. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// , or is null. + /// , or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual async Task GetRunStepAsync(string threadId, string runId, string stepId, IEnumerable runInclude, RequestContext context) + { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNullOrEmpty(stepId, nameof(stepId)); + + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetRunStep"); + scope.Start(); + try + { + using HttpMessage message = CreateGetRunStepRequest(threadId, runId, stepId, runInclude, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Gets a single run step from a thread run. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// The ID of the thread that was run. + /// The ID of the specific run to retrieve the step from. + /// The ID of the step to retrieve information about. + /// A list of additional fields to include in the response. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// , or is null. + /// , or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual Response GetRunStep(string threadId, string runId, string stepId, IEnumerable runInclude, RequestContext context) + { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNullOrEmpty(stepId, nameof(stepId)); + + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetRunStep"); + scope.Start(); + try + { + using HttpMessage message = CreateGetRunStepRequest(threadId, runId, stepId, runInclude, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Gets a list of run steps from a thread run. + /// The ID of the thread that was run. + /// The ID of the run to list steps from. + /// A list of additional fields to include in the response. + /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. + /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + internal virtual async Task> InternalGetRunStepsAsync(string threadId, string runId, IEnumerable runInclude = null, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await InternalGetRunStepsAsync(threadId, runId, runInclude, limit, order?.ToString(), after, before, context).ConfigureAwait(false); + return Response.FromValue(InternalOpenAIPageableListOfRunStep.FromResponse(response), response); + } + + /// Gets a list of run steps from a thread run. + /// The ID of the thread that was run. + /// The ID of the run to list steps from. + /// A list of additional fields to include in the response. + /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. + /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + internal virtual Response InternalGetRunSteps(string threadId, string runId, IEnumerable runInclude = null, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + + RequestContext context = FromCancellationToken(cancellationToken); + Response response = InternalGetRunSteps(threadId, runId, runInclude, limit, order?.ToString(), after, before, context); + return Response.FromValue(InternalOpenAIPageableListOfRunStep.FromResponse(response), response); + } + + /// + /// [Protocol Method] Gets a list of run steps from a thread run. + /// + /// + /// + /// 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 ID of the thread that was run. + /// The ID of the run to list steps from. + /// A list of additional fields to include in the response. + /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". + /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual async Task InternalGetRunStepsAsync(string threadId, string runId, IEnumerable runInclude, int? limit, string order, string after, string before, RequestContext context) + { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalGetRunSteps"); + scope.Start(); + try + { + using HttpMessage message = CreateInternalGetRunStepsRequest(threadId, runId, runInclude, limit, order, after, before, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Gets a list of run steps from a thread run. + /// + /// + /// + /// 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 ID of the thread that was run. + /// The ID of the run to list steps from. + /// A list of additional fields to include in the response. + /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". + /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual Response InternalGetRunSteps(string threadId, string runId, IEnumerable runInclude, int? limit, string order, string after, string before, RequestContext context) + { + Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); + Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalGetRunSteps"); + scope.Start(); + try + { + using HttpMessage message = CreateInternalGetRunStepsRequest(threadId, runId, runInclude, limit, order, after, before, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Gets a list of previously uploaded files. + /// A value that, when provided, limits list results to files matching the corresponding purpose. + /// The cancellation token to use. + internal virtual async Task> InternalListFilesAsync(OpenAIFilePurpose? purpose = null, CancellationToken cancellationToken = default) + { + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await InternalListFilesAsync(purpose?.ToString(), context).ConfigureAwait(false); + return Response.FromValue(InternalFileListResponse.FromResponse(response), response); + } + + /// Gets a list of previously uploaded files. + /// A value that, when provided, limits list results to files matching the corresponding purpose. + /// The cancellation token to use. + internal virtual Response InternalListFiles(OpenAIFilePurpose? purpose = null, CancellationToken cancellationToken = default) + { + RequestContext context = FromCancellationToken(cancellationToken); + Response response = InternalListFiles(purpose?.ToString(), context); + return Response.FromValue(InternalFileListResponse.FromResponse(response), response); + } + + /// + /// [Protocol Method] Gets a list of previously uploaded files. + /// + /// + /// + /// 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. + /// + /// + /// + /// + /// A value that, when provided, limits list results to files matching the corresponding purpose. Allowed values: "fine-tune" | "fine-tune-results" | "assistants" | "assistants_output" | "batch" | "batch_output" | "vision". + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual async Task InternalListFilesAsync(string purpose, RequestContext context) + { + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalListFiles"); + scope.Start(); + try + { + using HttpMessage message = CreateInternalListFilesRequest(purpose, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Gets a list of previously uploaded files. + /// + /// + /// + /// 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. + /// + /// + /// + /// + /// A value that, when provided, limits list results to files matching the corresponding purpose. Allowed values: "fine-tune" | "fine-tune-results" | "assistants" | "assistants_output" | "batch" | "batch_output" | "vision". + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// Service returned a non-success status code. + /// The response returned from the service. + internal virtual Response InternalListFiles(string purpose, RequestContext context) + { + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalListFiles"); + scope.Start(); + try + { + using HttpMessage message = CreateInternalListFilesRequest(purpose, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Uploads a file for use by other operations. + /// The file data (not filename) to upload. + /// The intended purpose of the file. + /// A filename to associate with the uploaded data. + /// The cancellation token to use. + /// is null. + public virtual async Task> UploadFileAsync(Stream data, OpenAIFilePurpose purpose, string filename = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + UploadFileRequest uploadFileRequest = new UploadFileRequest(data, purpose, filename, null); + using MultipartFormDataRequestContent content = uploadFileRequest.ToMultipartRequestContent(); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await UploadFileAsync(content, content.ContentType, context).ConfigureAwait(false); + return Response.FromValue(OpenAIFile.FromResponse(response), response); + } + + /// Uploads a file for use by other operations. + /// The file data (not filename) to upload. + /// The intended purpose of the file. + /// A filename to associate with the uploaded data. + /// The cancellation token to use. + /// is null. + public virtual Response UploadFile(Stream data, OpenAIFilePurpose purpose, string filename = null, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + UploadFileRequest uploadFileRequest = new UploadFileRequest(data, purpose, filename, null); + using MultipartFormDataRequestContent content = uploadFileRequest.ToMultipartRequestContent(); + RequestContext context = FromCancellationToken(cancellationToken); + Response response = UploadFile(content, content.ContentType, context); + return Response.FromValue(OpenAIFile.FromResponse(response), response); + } + + /// + /// [Protocol Method] Uploads a file for use by other operations. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// The content to send as the body of the request. + /// The 'content-type' header value, always 'multipart/format-data' for this operation. Allowed values: "multipart/form-data". + /// 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. + internal virtual async Task UploadFileAsync(RequestContent content, string contentType, RequestContext context = null) + { + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.UploadFile"); + scope.Start(); + try + { + using HttpMessage message = CreateUploadFileRequest(content, contentType, context); + return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// [Protocol Method] Uploads a file for use by other operations. + /// + /// + /// + /// This protocol method allows explicit creation of the request and processing of the response for advanced scenarios. + /// + /// + /// + /// + /// The content to send as the body of the request. + /// The 'content-type' header value, always 'multipart/format-data' for this operation. Allowed values: "multipart/form-data". + /// 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. + internal virtual Response UploadFile(RequestContent content, string contentType, RequestContext context = null) + { + Argument.AssertNotNull(content, nameof(content)); + + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.UploadFile"); + scope.Start(); + try + { + using HttpMessage message = CreateUploadFileRequest(content, contentType, context); + return _pipeline.ProcessMessage(message, context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Delete a previously uploaded file. + /// The ID of the file to delete. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + internal virtual async Task> InternalDeleteFileAsync(string fileId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + + RequestContext context = FromCancellationToken(cancellationToken); + Response response = await InternalDeleteFileAsync(fileId, context).ConfigureAwait(false); + return Response.FromValue(InternalFileDeletionStatus.FromResponse(response), response); + } + + /// Delete a previously uploaded file. + /// The ID of the file to delete. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + internal virtual Response InternalDeleteFile(string fileId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + + RequestContext context = FromCancellationToken(cancellationToken); + Response response = InternalDeleteFile(fileId, context); + return Response.FromValue(InternalFileDeletionStatus.FromResponse(response), response); + } + + /// + /// [Protocol Method] Delete a previously uploaded 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 ID of the file to delete. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// or is null. - /// or is an empty string, and was expected to be non-empty. + /// 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. - internal virtual async Task InternalGetMessageFilesAsync(string threadId, string messageId, int? limit, string order, string after, string before, RequestContext context) + internal virtual async Task InternalDeleteFileAsync(string fileId, RequestContext context) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); + Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalGetMessageFiles"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalDeleteFile"); scope.Start(); try { - using HttpMessage message = CreateInternalGetMessageFilesRequest(threadId, messageId, limit, order, after, before, context); + using HttpMessage message = CreateInternalDeleteFileRequest(fileId, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -1932,7 +2664,7 @@ internal virtual async Task InternalGetMessageFilesAsync(string thread } /// - /// [Protocol Method] Gets a list of previously uploaded files associated with a message from a thread. + /// [Protocol Method] Delete a previously uploaded file. /// /// /// @@ -1941,32 +2673,26 @@ internal virtual async Task InternalGetMessageFilesAsync(string thread /// /// /// - /// Please try the simpler convenience overload with strongly typed models first. + /// Please try the simpler convenience overload with strongly typed models first. /// /// /// /// - /// The ID of the thread containing the message to list files from. - /// The ID of the message to list files from. - /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". - /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// The ID of the file to delete. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// or is null. - /// or is an empty string, and was expected to be non-empty. + /// 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. - internal virtual Response InternalGetMessageFiles(string threadId, string messageId, int? limit, string order, string after, string before, RequestContext context) + internal virtual Response InternalDeleteFile(string fileId, RequestContext context) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); + Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalGetMessageFiles"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalDeleteFile"); scope.Start(); try { - using HttpMessage message = CreateInternalGetMessageFilesRequest(threadId, messageId, limit, order, after, before, context); + using HttpMessage message = CreateInternalDeleteFileRequest(fileId, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -1976,44 +2702,36 @@ internal virtual Response InternalGetMessageFiles(string threadId, string messag } } - /// Gets information about a file attachment to a message within a thread. - /// The ID of the thread containing the message to get information from. - /// The ID of the message to get information from. - /// The ID of the file to get information about. + /// Returns information about a specific file. Does not retrieve file content. + /// The ID of the file to retrieve. /// The cancellation token to use. - /// , or is null. - /// , or is an empty string, and was expected to be non-empty. - public virtual async Task> GetMessageFileAsync(string threadId, string messageId, string fileId, CancellationToken cancellationToken = default) + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetFileAsync(string fileId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await GetMessageFileAsync(threadId, messageId, fileId, context).ConfigureAwait(false); - return Response.FromValue(MessageFile.FromResponse(response), response); + Response response = await GetFileAsync(fileId, context).ConfigureAwait(false); + return Response.FromValue(OpenAIFile.FromResponse(response), response); } - /// Gets information about a file attachment to a message within a thread. - /// The ID of the thread containing the message to get information from. - /// The ID of the message to get information from. - /// The ID of the file to get information about. + /// Returns information about a specific file. Does not retrieve file content. + /// The ID of the file to retrieve. /// The cancellation token to use. - /// , or is null. - /// , or is an empty string, and was expected to be non-empty. - public virtual Response GetMessageFile(string threadId, string messageId, string fileId, CancellationToken cancellationToken = default) + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response GetFile(string fileId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = GetMessageFile(threadId, messageId, fileId, context); - return Response.FromValue(MessageFile.FromResponse(response), response); + Response response = GetFile(fileId, context); + return Response.FromValue(OpenAIFile.FromResponse(response), response); } /// - /// [Protocol Method] Gets information about a file attachment to a message within a thread. + /// [Protocol Method] Returns information about a specific file. Does not retrieve file content. /// /// /// @@ -2022,25 +2740,21 @@ public virtual Response GetMessageFile(string threadId, string mess /// /// /// - /// The ID of the thread containing the message to get information from. - /// The ID of the message to get information from. - /// The ID of the file to get information about. + /// The ID of the file to retrieve. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// , or is null. - /// , or is an empty string, and was expected to be non-empty. + /// 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. - internal virtual async Task GetMessageFileAsync(string threadId, string messageId, string fileId, RequestContext context) + internal virtual async Task GetFileAsync(string fileId, RequestContext context) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetMessageFile"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetFile"); scope.Start(); try { - using HttpMessage message = CreateGetMessageFileRequest(threadId, messageId, fileId, context); + using HttpMessage message = CreateGetFileRequest(fileId, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -2051,7 +2765,7 @@ internal virtual async Task GetMessageFileAsync(string threadId, strin } /// - /// [Protocol Method] Gets information about a file attachment to a message within a thread. + /// [Protocol Method] Returns information about a specific file. Does not retrieve file content. /// /// /// @@ -2060,25 +2774,21 @@ internal virtual async Task GetMessageFileAsync(string threadId, strin /// /// /// - /// The ID of the thread containing the message to get information from. - /// The ID of the message to get information from. - /// The ID of the file to get information about. + /// The ID of the file to retrieve. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// , or is null. - /// , or is an empty string, and was expected to be non-empty. + /// 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. - internal virtual Response GetMessageFile(string threadId, string messageId, string fileId, RequestContext context) + internal virtual Response GetFile(string fileId, RequestContext context) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(messageId, nameof(messageId)); Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetMessageFile"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetFile"); scope.Start(); try { - using HttpMessage message = CreateGetMessageFileRequest(threadId, messageId, fileId, context); + using HttpMessage message = CreateGetFileRequest(fileId, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -2088,42 +2798,36 @@ internal virtual Response GetMessageFile(string threadId, string messageId, stri } } - /// Creates a new run for an assistant thread. - /// The ID of the thread to run. - /// The details for the run to create. + /// Returns information about a specific file. Does not retrieve file content. + /// The ID of the file to retrieve. /// The cancellation token to use. - /// or is null. - /// is an empty string, and was expected to be non-empty. - public virtual async Task> CreateRunAsync(string threadId, CreateRunOptions createRunOptions, CancellationToken cancellationToken = default) + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetFileContentAsync(string fileId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNull(createRunOptions, nameof(createRunOptions)); + Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); - using RequestContent content = createRunOptions.ToRequestContent(); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await CreateRunAsync(threadId, content, context).ConfigureAwait(false); - return Response.FromValue(ThreadRun.FromResponse(response), response); + Response response = await GetFileContentAsync(fileId, context).ConfigureAwait(false); + return Response.FromValue(response.Content, response); } - /// Creates a new run for an assistant thread. - /// The ID of the thread to run. - /// The details for the run to create. + /// Returns information about a specific file. Does not retrieve file content. + /// The ID of the file to retrieve. /// The cancellation token to use. - /// or is null. - /// is an empty string, and was expected to be non-empty. - public virtual Response CreateRun(string threadId, CreateRunOptions createRunOptions, CancellationToken cancellationToken = default) + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response GetFileContent(string fileId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNull(createRunOptions, nameof(createRunOptions)); + Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); - using RequestContent content = createRunOptions.ToRequestContent(); RequestContext context = FromCancellationToken(cancellationToken); - Response response = CreateRun(threadId, content, context); - return Response.FromValue(ThreadRun.FromResponse(response), response); + Response response = GetFileContent(fileId, context); + return Response.FromValue(response.Content, response); } /// - /// [Protocol Method] Creates a new run for an assistant thread. + /// [Protocol Method] Returns information about a specific file. Does not retrieve file content. /// /// /// @@ -2132,23 +2836,21 @@ public virtual Response CreateRun(string threadId, CreateRunOptions c /// /// /// - /// The ID of the thread to run. - /// The content to send as the body of the request. + /// The ID of the file to retrieve. /// 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. + /// 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. - internal virtual async Task CreateRunAsync(string threadId, RequestContent content, RequestContext context = null) + internal virtual async Task GetFileContentAsync(string fileId, RequestContext context) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateRun"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetFileContent"); scope.Start(); try { - using HttpMessage message = CreateCreateRunRequest(threadId, content, context); + using HttpMessage message = CreateGetFileContentRequest(fileId, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -2159,7 +2861,7 @@ internal virtual async Task CreateRunAsync(string threadId, RequestCon } /// - /// [Protocol Method] Creates a new run for an assistant thread. + /// [Protocol Method] Returns information about a specific file. Does not retrieve file content. /// /// /// @@ -2168,23 +2870,21 @@ internal virtual async Task CreateRunAsync(string threadId, RequestCon /// /// /// - /// The ID of the thread to run. - /// The content to send as the body of the request. + /// The ID of the file to retrieve. /// 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. + /// 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. - internal virtual Response CreateRun(string threadId, RequestContent content, RequestContext context = null) + internal virtual Response GetFileContent(string fileId, RequestContext context) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateRun"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetFileContent"); scope.Start(); try { - using HttpMessage message = CreateCreateRunRequest(threadId, content, context); + using HttpMessage message = CreateGetFileContentRequest(fileId, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -2194,76 +2894,56 @@ internal virtual Response CreateRun(string threadId, RequestContent content, Req } } - /// Gets a list of runs for a specified thread. - /// The ID of the thread to list runs from. + /// Returns a list of vector stores. /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The cancellation token to use. - /// is null. - /// is an empty string, and was expected to be non-empty. - internal virtual async Task> InternalGetRunsAsync(string threadId, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) + public virtual async Task> GetVectorStoresAsync(int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - RequestContext context = FromCancellationToken(cancellationToken); - Response response = await InternalGetRunsAsync(threadId, limit, order?.ToString(), after, before, context).ConfigureAwait(false); - return Response.FromValue(InternalOpenAIPageableListOfThreadRun.FromResponse(response), response); + Response response = await GetVectorStoresAsync(limit, order?.ToString(), after, before, context).ConfigureAwait(false); + return Response.FromValue(OpenAIPageableListOfVectorStore.FromResponse(response), response); } - /// Gets a list of runs for a specified thread. - /// The ID of the thread to list runs from. + /// Returns a list of vector stores. /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The cancellation token to use. - /// is null. - /// is an empty string, and was expected to be non-empty. - internal virtual Response InternalGetRuns(string threadId, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) + public virtual Response GetVectorStores(int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - RequestContext context = FromCancellationToken(cancellationToken); - Response response = InternalGetRuns(threadId, limit, order?.ToString(), after, before, context); - return Response.FromValue(InternalOpenAIPageableListOfThreadRun.FromResponse(response), response); + Response response = GetVectorStores(limit, order?.ToString(), after, before, context); + return Response.FromValue(OpenAIPageableListOfVectorStore.FromResponse(response), response); } /// - /// [Protocol Method] Gets a list of runs for a specified thread. + /// [Protocol Method] Returns a list of vector stores. /// /// /// /// 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 ID of the thread to list runs from. /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// 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. - internal virtual async Task InternalGetRunsAsync(string threadId, int? limit, string order, string after, string before, RequestContext context) + internal virtual async Task GetVectorStoresAsync(int? limit, string order, string after, string before, RequestContext context) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalGetRuns"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetVectorStores"); scope.Start(); try { - using HttpMessage message = CreateInternalGetRunsRequest(threadId, limit, order, after, before, context); + using HttpMessage message = CreateGetVectorStoresRequest(limit, order, after, before, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -2274,39 +2954,29 @@ internal virtual async Task InternalGetRunsAsync(string threadId, int? } /// - /// [Protocol Method] Gets a list of runs for a specified thread. + /// [Protocol Method] Returns a list of vector stores. /// /// /// /// 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 ID of the thread to list runs from. /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// 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. - internal virtual Response InternalGetRuns(string threadId, int? limit, string order, string after, string before, RequestContext context) + internal virtual Response GetVectorStores(int? limit, string order, string after, string before, RequestContext context) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalGetRuns"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetVectorStores"); scope.Start(); try { - using HttpMessage message = CreateInternalGetRunsRequest(threadId, limit, order, after, before, context); + using HttpMessage message = CreateGetVectorStoresRequest(limit, order, after, before, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -2316,40 +2986,36 @@ internal virtual Response InternalGetRuns(string threadId, int? limit, string or } } - /// Gets an existing run from an existing thread. - /// The ID of the thread to retrieve run information from. - /// The ID of the thread to retrieve information about. + /// Creates a vector store. + /// Request object for creating a vector store. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - public virtual async Task> GetRunAsync(string threadId, string runId, CancellationToken cancellationToken = default) + /// is null. + public virtual async Task> CreateVectorStoreAsync(VectorStoreOptions body, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNull(body, nameof(body)); + using RequestContent content = body.ToRequestContent(); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await GetRunAsync(threadId, runId, context).ConfigureAwait(false); - return Response.FromValue(ThreadRun.FromResponse(response), response); + Response response = await CreateVectorStoreAsync(content, context).ConfigureAwait(false); + return Response.FromValue(VectorStore.FromResponse(response), response); } - /// Gets an existing run from an existing thread. - /// The ID of the thread to retrieve run information from. - /// The ID of the thread to retrieve information about. + /// Creates a vector store. + /// Request object for creating a vector store. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - public virtual Response GetRun(string threadId, string runId, CancellationToken cancellationToken = default) + /// is null. + public virtual Response CreateVectorStore(VectorStoreOptions body, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNull(body, nameof(body)); + using RequestContent content = body.ToRequestContent(); RequestContext context = FromCancellationToken(cancellationToken); - Response response = GetRun(threadId, runId, context); - return Response.FromValue(ThreadRun.FromResponse(response), response); + Response response = CreateVectorStore(content, context); + return Response.FromValue(VectorStore.FromResponse(response), response); } /// - /// [Protocol Method] Gets an existing run from an existing thread. + /// [Protocol Method] Creates a vector store. /// /// /// @@ -2358,23 +3024,20 @@ public virtual Response GetRun(string threadId, string runId, Cancell /// /// /// - /// The ID of the thread to retrieve run information from. - /// The ID of the thread to retrieve information about. + /// The content to send as the body of the request. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// or is null. - /// or is an empty string, and was expected to be non-empty. + /// is null. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual async Task GetRunAsync(string threadId, string runId, RequestContext context) + internal virtual async Task CreateVectorStoreAsync(RequestContent content, RequestContext context = null) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetRun"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateVectorStore"); scope.Start(); try { - using HttpMessage message = CreateGetRunRequest(threadId, runId, context); + using HttpMessage message = CreateCreateVectorStoreRequest(content, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -2385,7 +3048,7 @@ internal virtual async Task GetRunAsync(string threadId, string runId, } /// - /// [Protocol Method] Gets an existing run from an existing thread. + /// [Protocol Method] Creates a vector store. /// /// /// @@ -2394,23 +3057,20 @@ internal virtual async Task GetRunAsync(string threadId, string runId, /// /// /// - /// The ID of the thread to retrieve run information from. - /// The ID of the thread to retrieve information about. + /// The content to send as the body of the request. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// or is null. - /// or is an empty string, and was expected to be non-empty. + /// is null. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual Response GetRun(string threadId, string runId, RequestContext context) + internal virtual Response CreateVectorStore(RequestContent content, RequestContext context = null) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetRun"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateVectorStore"); scope.Start(); try { - using HttpMessage message = CreateGetRunRequest(threadId, runId, context); + using HttpMessage message = CreateCreateVectorStoreRequest(content, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -2420,44 +3080,36 @@ internal virtual Response GetRun(string threadId, string runId, RequestContext c } } - /// Modifies an existing thread run. - /// The ID of the thread associated with the specified run. - /// The ID of the run to modify. - /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. + /// Returns the vector store object matching the specified ID. + /// The ID of the vector store to retrieve. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - public virtual async Task> UpdateRunAsync(string threadId, string runId, IReadOnlyDictionary metadata = null, CancellationToken cancellationToken = default) + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetVectorStoreAsync(string vectorStoreId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); - UpdateRunRequest updateRunRequest = new UpdateRunRequest(metadata ?? new ChangeTrackingDictionary(), null); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await UpdateRunAsync(threadId, runId, updateRunRequest.ToRequestContent(), context).ConfigureAwait(false); - return Response.FromValue(ThreadRun.FromResponse(response), response); + Response response = await GetVectorStoreAsync(vectorStoreId, context).ConfigureAwait(false); + return Response.FromValue(VectorStore.FromResponse(response), response); } - /// Modifies an existing thread run. - /// The ID of the thread associated with the specified run. - /// The ID of the run to modify. - /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. + /// Returns the vector store object matching the specified ID. + /// The ID of the vector store to retrieve. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - public virtual Response UpdateRun(string threadId, string runId, IReadOnlyDictionary metadata = null, CancellationToken cancellationToken = default) + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response GetVectorStore(string vectorStoreId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); - UpdateRunRequest updateRunRequest = new UpdateRunRequest(metadata ?? new ChangeTrackingDictionary(), null); RequestContext context = FromCancellationToken(cancellationToken); - Response response = UpdateRun(threadId, runId, updateRunRequest.ToRequestContent(), context); - return Response.FromValue(ThreadRun.FromResponse(response), response); + Response response = GetVectorStore(vectorStoreId, context); + return Response.FromValue(VectorStore.FromResponse(response), response); } /// - /// [Protocol Method] Modifies an existing thread run. + /// [Protocol Method] Returns the vector store object matching the specified ID. /// /// /// @@ -2466,25 +3118,21 @@ public virtual Response UpdateRun(string threadId, string runId, IRea /// /// /// - /// The ID of the thread associated with the specified run. - /// The ID of the run to modify. - /// The content to send as the body of the request. + /// The ID of the vector store to retrieve. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// , or is null. - /// or is an empty string, and was expected to be non-empty. + /// 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. - internal virtual async Task UpdateRunAsync(string threadId, string runId, RequestContent content, RequestContext context = null) - { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); - Argument.AssertNotNull(content, nameof(content)); + /// The response returned from the service. + internal virtual async Task GetVectorStoreAsync(string vectorStoreId, RequestContext context) + { + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.UpdateRun"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetVectorStore"); scope.Start(); try { - using HttpMessage message = CreateUpdateRunRequest(threadId, runId, content, context); + using HttpMessage message = CreateGetVectorStoreRequest(vectorStoreId, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -2495,7 +3143,7 @@ internal virtual async Task UpdateRunAsync(string threadId, string run } /// - /// [Protocol Method] Modifies an existing thread run. + /// [Protocol Method] Returns the vector store object matching the specified ID. /// /// /// @@ -2504,25 +3152,21 @@ internal virtual async Task UpdateRunAsync(string threadId, string run /// /// /// - /// The ID of the thread associated with the specified run. - /// The ID of the run to modify. - /// The content to send as the body of the request. + /// The ID of the vector store to retrieve. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// , or is null. - /// or is an empty string, and was expected to be non-empty. + /// 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. - internal virtual Response UpdateRun(string threadId, string runId, RequestContent content, RequestContext context = null) + internal virtual Response GetVectorStore(string vectorStoreId, RequestContext context) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); - Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.UpdateRun"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetVectorStore"); scope.Start(); try { - using HttpMessage message = CreateUpdateRunRequest(threadId, runId, content, context); + using HttpMessage message = CreateGetVectorStoreRequest(vectorStoreId, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -2532,46 +3176,42 @@ internal virtual Response UpdateRun(string threadId, string runId, RequestConten } } - /// Submits outputs from tools as requested by tool calls in a run. Runs that need submitted tool outputs will have a status of 'requires_action' with a required_action.type of 'submit_tool_outputs'. - /// The ID of the thread that was run. - /// The ID of the run that requires tool outputs. - /// The list of tool outputs requested by tool calls from the specified run. + /// The ID of the vector store to modify. + /// The ID of the vector store to modify. + /// Request object for updating a vector store. /// The cancellation token to use. - /// , or is null. - /// or is an empty string, and was expected to be non-empty. - public virtual async Task> SubmitToolOutputsToRunAsync(string threadId, string runId, IEnumerable toolOutputs, CancellationToken cancellationToken = default) + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> ModifyVectorStoreAsync(string vectorStoreId, VectorStoreUpdateOptions body, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); - Argument.AssertNotNull(toolOutputs, nameof(toolOutputs)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNull(body, nameof(body)); - SubmitToolOutputsToRunRequest submitToolOutputsToRunRequest = new SubmitToolOutputsToRunRequest(toolOutputs.ToList(), null); + using RequestContent content = body.ToRequestContent(); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await SubmitToolOutputsToRunAsync(threadId, runId, submitToolOutputsToRunRequest.ToRequestContent(), context).ConfigureAwait(false); - return Response.FromValue(ThreadRun.FromResponse(response), response); + Response response = await ModifyVectorStoreAsync(vectorStoreId, content, context).ConfigureAwait(false); + return Response.FromValue(VectorStore.FromResponse(response), response); } - /// Submits outputs from tools as requested by tool calls in a run. Runs that need submitted tool outputs will have a status of 'requires_action' with a required_action.type of 'submit_tool_outputs'. - /// The ID of the thread that was run. - /// The ID of the run that requires tool outputs. - /// The list of tool outputs requested by tool calls from the specified run. + /// The ID of the vector store to modify. + /// The ID of the vector store to modify. + /// Request object for updating a vector store. /// The cancellation token to use. - /// , or is null. - /// or is an empty string, and was expected to be non-empty. - public virtual Response SubmitToolOutputsToRun(string threadId, string runId, IEnumerable toolOutputs, CancellationToken cancellationToken = default) + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response ModifyVectorStore(string vectorStoreId, VectorStoreUpdateOptions body, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); - Argument.AssertNotNull(toolOutputs, nameof(toolOutputs)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNull(body, nameof(body)); - SubmitToolOutputsToRunRequest submitToolOutputsToRunRequest = new SubmitToolOutputsToRunRequest(toolOutputs.ToList(), null); + using RequestContent content = body.ToRequestContent(); RequestContext context = FromCancellationToken(cancellationToken); - Response response = SubmitToolOutputsToRun(threadId, runId, submitToolOutputsToRunRequest.ToRequestContent(), context); - return Response.FromValue(ThreadRun.FromResponse(response), response); + Response response = ModifyVectorStore(vectorStoreId, content, context); + return Response.FromValue(VectorStore.FromResponse(response), response); } /// - /// [Protocol Method] Submits outputs from tools as requested by tool calls in a run. Runs that need submitted tool outputs will have a status of 'requires_action' with a required_action.type of 'submit_tool_outputs'. + /// [Protocol Method] The ID of the vector store to modify. /// /// /// @@ -2580,25 +3220,23 @@ public virtual Response SubmitToolOutputsToRun(string threadId, strin /// /// /// - /// The ID of the thread that was run. - /// The ID of the run that requires tool outputs. + /// The ID of the vector store to modify. /// The content to send as the body of the request. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// , or is null. - /// or is an empty string, and was expected to be non-empty. + /// 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. - internal virtual async Task SubmitToolOutputsToRunAsync(string threadId, string runId, RequestContent content, RequestContext context = null) + internal virtual async Task ModifyVectorStoreAsync(string vectorStoreId, RequestContent content, RequestContext context = null) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.SubmitToolOutputsToRun"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.ModifyVectorStore"); scope.Start(); try { - using HttpMessage message = CreateSubmitToolOutputsToRunRequest(threadId, runId, content, context); + using HttpMessage message = CreateModifyVectorStoreRequest(vectorStoreId, content, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -2609,7 +3247,7 @@ internal virtual async Task SubmitToolOutputsToRunAsync(string threadI } /// - /// [Protocol Method] Submits outputs from tools as requested by tool calls in a run. Runs that need submitted tool outputs will have a status of 'requires_action' with a required_action.type of 'submit_tool_outputs'. + /// [Protocol Method] The ID of the vector store to modify. /// /// /// @@ -2618,25 +3256,23 @@ internal virtual async Task SubmitToolOutputsToRunAsync(string threadI /// /// /// - /// The ID of the thread that was run. - /// The ID of the run that requires tool outputs. + /// The ID of the vector store to modify. /// The content to send as the body of the request. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// , or is null. - /// or is an empty string, and was expected to be non-empty. + /// 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. - internal virtual Response SubmitToolOutputsToRun(string threadId, string runId, RequestContent content, RequestContext context = null) + internal virtual Response ModifyVectorStore(string vectorStoreId, RequestContent content, RequestContext context = null) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.SubmitToolOutputsToRun"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.ModifyVectorStore"); scope.Start(); try { - using HttpMessage message = CreateSubmitToolOutputsToRunRequest(threadId, runId, content, context); + using HttpMessage message = CreateModifyVectorStoreRequest(vectorStoreId, content, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -2646,40 +3282,36 @@ internal virtual Response SubmitToolOutputsToRun(string threadId, string runId, } } - /// Cancels a run of an in progress thread. - /// The ID of the thread being run. - /// The ID of the run to cancel. + /// Deletes the vector store object matching the specified ID. + /// The ID of the vector store to delete. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - public virtual async Task> CancelRunAsync(string threadId, string runId, CancellationToken cancellationToken = default) + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> DeleteVectorStoreAsync(string vectorStoreId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await CancelRunAsync(threadId, runId, context).ConfigureAwait(false); - return Response.FromValue(ThreadRun.FromResponse(response), response); + Response response = await DeleteVectorStoreAsync(vectorStoreId, context).ConfigureAwait(false); + return Response.FromValue(VectorStoreDeletionStatus.FromResponse(response), response); } - /// Cancels a run of an in progress thread. - /// The ID of the thread being run. - /// The ID of the run to cancel. + /// Deletes the vector store object matching the specified ID. + /// The ID of the vector store to delete. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - public virtual Response CancelRun(string threadId, string runId, CancellationToken cancellationToken = default) + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response DeleteVectorStore(string vectorStoreId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = CancelRun(threadId, runId, context); - return Response.FromValue(ThreadRun.FromResponse(response), response); + Response response = DeleteVectorStore(vectorStoreId, context); + return Response.FromValue(VectorStoreDeletionStatus.FromResponse(response), response); } /// - /// [Protocol Method] Cancels a run of an in progress thread. + /// [Protocol Method] Deletes the vector store object matching the specified ID. /// /// /// @@ -2688,23 +3320,21 @@ public virtual Response CancelRun(string threadId, string runId, Canc /// /// /// - /// The ID of the thread being run. - /// The ID of the run to cancel. + /// The ID of the vector store to delete. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// or is null. - /// or is an empty string, and was expected to be non-empty. + /// 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. - internal virtual async Task CancelRunAsync(string threadId, string runId, RequestContext context) + internal virtual async Task DeleteVectorStoreAsync(string vectorStoreId, RequestContext context) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CancelRun"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.DeleteVectorStore"); scope.Start(); try { - using HttpMessage message = CreateCancelRunRequest(threadId, runId, context); + using HttpMessage message = CreateDeleteVectorStoreRequest(vectorStoreId, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -2715,7 +3345,7 @@ internal virtual async Task CancelRunAsync(string threadId, string run } /// - /// [Protocol Method] Cancels a run of an in progress thread. + /// [Protocol Method] Deletes the vector store object matching the specified ID. /// /// /// @@ -2724,23 +3354,21 @@ internal virtual async Task CancelRunAsync(string threadId, string run /// /// /// - /// The ID of the thread being run. - /// The ID of the run to cancel. + /// The ID of the vector store to delete. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// or is null. - /// or is an empty string, and was expected to be non-empty. + /// 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. - internal virtual Response CancelRun(string threadId, string runId, RequestContext context) + internal virtual Response DeleteVectorStore(string vectorStoreId, RequestContext context) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CancelRun"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.DeleteVectorStore"); scope.Start(); try { - using HttpMessage message = CreateCancelRunRequest(threadId, runId, context); + using HttpMessage message = CreateDeleteVectorStoreRequest(vectorStoreId, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -2750,36 +3378,46 @@ internal virtual Response CancelRun(string threadId, string runId, RequestContex } } - /// Creates a new assistant thread and immediately starts a run using that new thread. - /// Body parameter. + /// Returns a list of vector store files. + /// The ID of the vector store that the files belong to. + /// Filter by file status. + /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. + /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The cancellation token to use. - /// is null. - public virtual async Task> CreateThreadAndRunAsync(CreateAndRunThreadOptions body, CancellationToken cancellationToken = default) + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetVectorStoreFilesAsync(string vectorStoreId, VectorStoreFileStatusFilter? filter = null, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) { - Argument.AssertNotNull(body, nameof(body)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); - using RequestContent content = body.ToRequestContent(); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await CreateThreadAndRunAsync(content, context).ConfigureAwait(false); - return Response.FromValue(ThreadRun.FromResponse(response), response); + Response response = await GetVectorStoreFilesAsync(vectorStoreId, filter?.ToString(), limit, order?.ToString(), after, before, context).ConfigureAwait(false); + return Response.FromValue(OpenAIPageableListOfVectorStoreFile.FromResponse(response), response); } - /// Creates a new assistant thread and immediately starts a run using that new thread. - /// Body parameter. + /// Returns a list of vector store files. + /// The ID of the vector store that the files belong to. + /// Filter by file status. + /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. + /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The cancellation token to use. - /// is null. - public virtual Response CreateThreadAndRun(CreateAndRunThreadOptions body, CancellationToken cancellationToken = default) + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response GetVectorStoreFiles(string vectorStoreId, VectorStoreFileStatusFilter? filter = null, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) { - Argument.AssertNotNull(body, nameof(body)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); - using RequestContent content = body.ToRequestContent(); RequestContext context = FromCancellationToken(cancellationToken); - Response response = CreateThreadAndRun(content, context); - return Response.FromValue(ThreadRun.FromResponse(response), response); + Response response = GetVectorStoreFiles(vectorStoreId, filter?.ToString(), limit, order?.ToString(), after, before, context); + return Response.FromValue(OpenAIPageableListOfVectorStoreFile.FromResponse(response), response); } /// - /// [Protocol Method] Creates a new assistant thread and immediately starts a run using that new thread. + /// [Protocol Method] Returns a list of vector store files. /// /// /// @@ -2788,20 +3426,26 @@ public virtual Response CreateThreadAndRun(CreateAndRunThreadOptions /// /// /// - /// The content to send as the body of the request. + /// The ID of the vector store that the files belong to. + /// Filter by file status. Allowed values: "in_progress" | "completed" | "failed" | "cancelled". + /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". + /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// is null. + /// 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. - internal virtual async Task CreateThreadAndRunAsync(RequestContent content, RequestContext context = null) + internal virtual async Task GetVectorStoreFilesAsync(string vectorStoreId, string filter, int? limit, string order, string after, string before, RequestContext context) { - Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateThreadAndRun"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetVectorStoreFiles"); scope.Start(); try { - using HttpMessage message = CreateCreateThreadAndRunRequest(content, context); + using HttpMessage message = CreateGetVectorStoreFilesRequest(vectorStoreId, filter, limit, order, after, before, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -2812,7 +3456,7 @@ internal virtual async Task CreateThreadAndRunAsync(RequestContent con } /// - /// [Protocol Method] Creates a new assistant thread and immediately starts a run using that new thread. + /// [Protocol Method] Returns a list of vector store files. /// /// /// @@ -2821,20 +3465,26 @@ internal virtual async Task CreateThreadAndRunAsync(RequestContent con /// /// /// - /// The content to send as the body of the request. + /// The ID of the vector store that the files belong to. + /// Filter by file status. Allowed values: "in_progress" | "completed" | "failed" | "cancelled". + /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". + /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// is null. + /// 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. - internal virtual Response CreateThreadAndRun(RequestContent content, RequestContext context = null) + internal virtual Response GetVectorStoreFiles(string vectorStoreId, string filter, int? limit, string order, string after, string before, RequestContext context) { - Argument.AssertNotNull(content, nameof(content)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateThreadAndRun"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetVectorStoreFiles"); scope.Start(); try { - using HttpMessage message = CreateCreateThreadAndRunRequest(content, context); + using HttpMessage message = CreateGetVectorStoreFilesRequest(vectorStoreId, filter, limit, order, after, before, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -2844,44 +3494,44 @@ internal virtual Response CreateThreadAndRun(RequestContent content, RequestCont } } - /// Gets a single run step from a thread run. - /// The ID of the thread that was run. - /// The ID of the specific run to retrieve the step from. - /// The ID of the step to retrieve information about. + /// Create a vector store file by attaching a file to a vector store. + /// The ID of the vector store for which to create a File. + /// A File ID that the vector store should use. Useful for tools like `file_search` that can access files. + /// The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. /// The cancellation token to use. - /// , or is null. - /// , or is an empty string, and was expected to be non-empty. - public virtual async Task> GetRunStepAsync(string threadId, string runId, string stepId, CancellationToken cancellationToken = default) + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> CreateVectorStoreFileAsync(string vectorStoreId, string fileId, VectorStoreChunkingStrategyRequest chunkingStrategy = null, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); - Argument.AssertNotNullOrEmpty(stepId, nameof(stepId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNull(fileId, nameof(fileId)); + CreateVectorStoreFileRequest createVectorStoreFileRequest = new CreateVectorStoreFileRequest(fileId, chunkingStrategy, null); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await GetRunStepAsync(threadId, runId, stepId, context).ConfigureAwait(false); - return Response.FromValue(RunStep.FromResponse(response), response); + Response response = await CreateVectorStoreFileAsync(vectorStoreId, createVectorStoreFileRequest.ToRequestContent(), context).ConfigureAwait(false); + return Response.FromValue(VectorStoreFile.FromResponse(response), response); } - /// Gets a single run step from a thread run. - /// The ID of the thread that was run. - /// The ID of the specific run to retrieve the step from. - /// The ID of the step to retrieve information about. + /// Create a vector store file by attaching a file to a vector store. + /// The ID of the vector store for which to create a File. + /// A File ID that the vector store should use. Useful for tools like `file_search` that can access files. + /// The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. /// The cancellation token to use. - /// , or is null. - /// , or is an empty string, and was expected to be non-empty. - public virtual Response GetRunStep(string threadId, string runId, string stepId, CancellationToken cancellationToken = default) + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response CreateVectorStoreFile(string vectorStoreId, string fileId, VectorStoreChunkingStrategyRequest chunkingStrategy = null, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); - Argument.AssertNotNullOrEmpty(stepId, nameof(stepId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNull(fileId, nameof(fileId)); + CreateVectorStoreFileRequest createVectorStoreFileRequest = new CreateVectorStoreFileRequest(fileId, chunkingStrategy, null); RequestContext context = FromCancellationToken(cancellationToken); - Response response = GetRunStep(threadId, runId, stepId, context); - return Response.FromValue(RunStep.FromResponse(response), response); + Response response = CreateVectorStoreFile(vectorStoreId, createVectorStoreFileRequest.ToRequestContent(), context); + return Response.FromValue(VectorStoreFile.FromResponse(response), response); } /// - /// [Protocol Method] Gets a single run step from a thread run. + /// [Protocol Method] Create a vector store file by attaching a file to a vector store. /// /// /// @@ -2890,25 +3540,23 @@ public virtual Response GetRunStep(string threadId, string runId, strin /// /// /// - /// The ID of the thread that was run. - /// The ID of the specific run to retrieve the step from. - /// The ID of the step to retrieve information about. + /// The ID of the vector store for which to create a File. + /// The content to send as the body of the request. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// , or is null. - /// , or is an empty string, and was expected to be non-empty. + /// 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. - internal virtual async Task GetRunStepAsync(string threadId, string runId, string stepId, RequestContext context) + internal virtual async Task CreateVectorStoreFileAsync(string vectorStoreId, RequestContent content, RequestContext context = null) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); - Argument.AssertNotNullOrEmpty(stepId, nameof(stepId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetRunStep"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateVectorStoreFile"); scope.Start(); try { - using HttpMessage message = CreateGetRunStepRequest(threadId, runId, stepId, context); + using HttpMessage message = CreateCreateVectorStoreFileRequest(vectorStoreId, content, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -2919,7 +3567,7 @@ internal virtual async Task GetRunStepAsync(string threadId, string ru } /// - /// [Protocol Method] Gets a single run step from a thread run. + /// [Protocol Method] Create a vector store file by attaching a file to a vector store. /// /// /// @@ -2928,25 +3576,23 @@ internal virtual async Task GetRunStepAsync(string threadId, string ru /// /// /// - /// The ID of the thread that was run. - /// The ID of the specific run to retrieve the step from. - /// The ID of the step to retrieve information about. + /// The ID of the vector store for which to create a File. + /// The content to send as the body of the request. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// , or is null. - /// , or is an empty string, and was expected to be non-empty. + /// 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. - internal virtual Response GetRunStep(string threadId, string runId, string stepId, RequestContext context) + internal virtual Response CreateVectorStoreFile(string vectorStoreId, RequestContent content, RequestContext context = null) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); - Argument.AssertNotNullOrEmpty(stepId, nameof(stepId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetRunStep"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateVectorStoreFile"); scope.Start(); try { - using HttpMessage message = CreateGetRunStepRequest(threadId, runId, stepId, context); + using HttpMessage message = CreateCreateVectorStoreFileRequest(vectorStoreId, content, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -2956,82 +3602,65 @@ internal virtual Response GetRunStep(string threadId, string runId, string stepI } } - /// Gets a list of run steps from a thread run. - /// The ID of the thread that was run. - /// The ID of the run to list steps from. - /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. - /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// Retrieves a vector store file. + /// The ID of the vector store that the file belongs to. + /// The ID of the file being retrieved. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - internal virtual async Task> InternalGetRunStepsAsync(string threadId, string runId, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual async Task> GetVectorStoreFileAsync(string vectorStoreId, string fileId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await InternalGetRunStepsAsync(threadId, runId, limit, order?.ToString(), after, before, context).ConfigureAwait(false); - return Response.FromValue(InternalOpenAIPageableListOfRunStep.FromResponse(response), response); + Response response = await GetVectorStoreFileAsync(vectorStoreId, fileId, context).ConfigureAwait(false); + return Response.FromValue(VectorStoreFile.FromResponse(response), response); } - /// Gets a list of run steps from a thread run. - /// The ID of the thread that was run. - /// The ID of the run to list steps from. - /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. - /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// Retrieves a vector store file. + /// The ID of the vector store that the file belongs to. + /// The ID of the file being retrieved. /// The cancellation token to use. - /// or is null. - /// or is an empty string, and was expected to be non-empty. - internal virtual Response InternalGetRunSteps(string threadId, string runId, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual Response GetVectorStoreFile(string vectorStoreId, string fileId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = InternalGetRunSteps(threadId, runId, limit, order?.ToString(), after, before, context); - return Response.FromValue(InternalOpenAIPageableListOfRunStep.FromResponse(response), response); + Response response = GetVectorStoreFile(vectorStoreId, fileId, context); + return Response.FromValue(VectorStoreFile.FromResponse(response), response); } /// - /// [Protocol Method] Gets a list of run steps from a thread run. + /// [Protocol Method] Retrieves a vector store 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 ID of the thread that was run. - /// The ID of the run to list steps from. - /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". - /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// The ID of the vector store that the file belongs to. + /// The ID of the file being retrieved. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// or is null. - /// or is an empty string, and was expected to be non-empty. + /// or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual async Task InternalGetRunStepsAsync(string threadId, string runId, int? limit, string order, string after, string before, RequestContext context) + internal virtual async Task GetVectorStoreFileAsync(string vectorStoreId, string fileId, RequestContext context) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalGetRunSteps"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetVectorStoreFile"); scope.Start(); try { - using HttpMessage message = CreateInternalGetRunStepsRequest(threadId, runId, limit, order, after, before, context); + using HttpMessage message = CreateGetVectorStoreFileRequest(vectorStoreId, fileId, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -3042,41 +3671,32 @@ internal virtual async Task InternalGetRunStepsAsync(string threadId, } /// - /// [Protocol Method] Gets a list of run steps from a thread run. + /// [Protocol Method] Retrieves a vector store 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 ID of the thread that was run. - /// The ID of the run to list steps from. - /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". - /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. - /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + /// The ID of the vector store that the file belongs to. + /// The ID of the file being retrieved. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// or is null. - /// or is an empty string, and was expected to be non-empty. + /// or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual Response InternalGetRunSteps(string threadId, string runId, int? limit, string order, string after, string before, RequestContext context) + internal virtual Response GetVectorStoreFile(string vectorStoreId, string fileId, RequestContext context) { - Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); - Argument.AssertNotNullOrEmpty(runId, nameof(runId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalGetRunSteps"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetVectorStoreFile"); scope.Start(); try { - using HttpMessage message = CreateInternalGetRunStepsRequest(threadId, runId, limit, order, after, before, context); + using HttpMessage message = CreateGetVectorStoreFileRequest(vectorStoreId, fileId, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -3086,52 +3706,72 @@ internal virtual Response InternalGetRunSteps(string threadId, string runId, int } } - /// Gets a list of previously uploaded files. - /// A value that, when provided, limits list results to files matching the corresponding purpose. + /// + /// Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted. + /// To delete the file, use the delete file endpoint. + /// + /// The ID of the vector store that the file belongs to. + /// The ID of the file to delete its relationship to the vector store. /// The cancellation token to use. - internal virtual async Task> InternalListFilesAsync(OpenAIFilePurpose? purpose = null, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual async Task> DeleteVectorStoreFileAsync(string vectorStoreId, string fileId, CancellationToken cancellationToken = default) { + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + RequestContext context = FromCancellationToken(cancellationToken); - Response response = await InternalListFilesAsync(purpose?.ToString(), context).ConfigureAwait(false); - return Response.FromValue(InternalFileListResponse.FromResponse(response), response); + Response response = await DeleteVectorStoreFileAsync(vectorStoreId, fileId, context).ConfigureAwait(false); + return Response.FromValue(VectorStoreFileDeletionStatus.FromResponse(response), response); } - /// Gets a list of previously uploaded files. - /// A value that, when provided, limits list results to files matching the corresponding purpose. + /// + /// Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted. + /// To delete the file, use the delete file endpoint. + /// + /// The ID of the vector store that the file belongs to. + /// The ID of the file to delete its relationship to the vector store. /// The cancellation token to use. - internal virtual Response InternalListFiles(OpenAIFilePurpose? purpose = null, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual Response DeleteVectorStoreFile(string vectorStoreId, string fileId, CancellationToken cancellationToken = default) { + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + RequestContext context = FromCancellationToken(cancellationToken); - Response response = InternalListFiles(purpose?.ToString(), context); - return Response.FromValue(InternalFileListResponse.FromResponse(response), response); + Response response = DeleteVectorStoreFile(vectorStoreId, fileId, context); + return Response.FromValue(VectorStoreFileDeletionStatus.FromResponse(response), response); } /// - /// [Protocol Method] Gets a list of previously uploaded files. + /// [Protocol Method] Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted. + /// To delete the file, use the delete file endpoint. /// /// /// /// 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. - /// - /// /// /// - /// A value that, when provided, limits list results to files matching the corresponding purpose. Allowed values: "fine-tune" | "fine-tune-results" | "assistants" | "assistants_output". + /// The ID of the vector store that the file belongs to. + /// The ID of the file to delete its relationship to the vector store. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual async Task InternalListFilesAsync(string purpose, RequestContext context) + internal virtual async Task DeleteVectorStoreFileAsync(string vectorStoreId, string fileId, RequestContext context) { - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalListFiles"); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.DeleteVectorStoreFile"); scope.Start(); try { - using HttpMessage message = CreateInternalListFilesRequest(purpose, context); + using HttpMessage message = CreateDeleteVectorStoreFileRequest(vectorStoreId, fileId, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -3142,31 +3782,33 @@ internal virtual async Task InternalListFilesAsync(string purpose, Req } /// - /// [Protocol Method] Gets a list of previously uploaded files. + /// [Protocol Method] Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted. + /// To delete the file, use the delete file endpoint. /// /// /// /// 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. - /// - /// /// /// - /// A value that, when provided, limits list results to files matching the corresponding purpose. Allowed values: "fine-tune" | "fine-tune-results" | "assistants" | "assistants_output". + /// The ID of the vector store that the file belongs to. + /// The ID of the file to delete its relationship to the vector store. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + /// or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual Response InternalListFiles(string purpose, RequestContext context) + internal virtual Response DeleteVectorStoreFile(string vectorStoreId, string fileId, RequestContext context) { - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalListFiles"); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.DeleteVectorStoreFile"); scope.Start(); try { - using HttpMessage message = CreateInternalListFilesRequest(purpose, context); + using HttpMessage message = CreateDeleteVectorStoreFileRequest(vectorStoreId, fileId, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -3176,42 +3818,44 @@ internal virtual Response InternalListFiles(string purpose, RequestContext conte } } - /// Uploads a file for use by other operations. - /// The file data (not filename) to upload. - /// The intended purpose of the file. - /// A filename to associate with the uploaded data. + /// Create a vector store file batch. + /// The ID of the vector store for which to create a File Batch. + /// A list of File IDs that the vector store should use. Useful for tools like `file_search` that can access files. + /// The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. /// The cancellation token to use. - /// is null. - public virtual async Task> UploadFileAsync(Stream data, OpenAIFilePurpose purpose, string filename = null, CancellationToken cancellationToken = default) + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> CreateVectorStoreFileBatchAsync(string vectorStoreId, IEnumerable fileIds, VectorStoreChunkingStrategyRequest chunkingStrategy = null, CancellationToken cancellationToken = default) { - Argument.AssertNotNull(data, nameof(data)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNull(fileIds, nameof(fileIds)); - UploadFileRequest uploadFileRequest = new UploadFileRequest(data, purpose, filename, null); - using MultipartFormDataRequestContent content = uploadFileRequest.ToMultipartRequestContent(); + CreateVectorStoreFileBatchRequest createVectorStoreFileBatchRequest = new CreateVectorStoreFileBatchRequest(fileIds.ToList(), chunkingStrategy, null); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await UploadFileAsync(content, content.ContentType, context).ConfigureAwait(false); - return Response.FromValue(OpenAIFile.FromResponse(response), response); + Response response = await CreateVectorStoreFileBatchAsync(vectorStoreId, createVectorStoreFileBatchRequest.ToRequestContent(), context).ConfigureAwait(false); + return Response.FromValue(VectorStoreFileBatch.FromResponse(response), response); } - /// Uploads a file for use by other operations. - /// The file data (not filename) to upload. - /// The intended purpose of the file. - /// A filename to associate with the uploaded data. + /// Create a vector store file batch. + /// The ID of the vector store for which to create a File Batch. + /// A list of File IDs that the vector store should use. Useful for tools like `file_search` that can access files. + /// The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. /// The cancellation token to use. - /// is null. - public virtual Response UploadFile(Stream data, OpenAIFilePurpose purpose, string filename = null, CancellationToken cancellationToken = default) + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response CreateVectorStoreFileBatch(string vectorStoreId, IEnumerable fileIds, VectorStoreChunkingStrategyRequest chunkingStrategy = null, CancellationToken cancellationToken = default) { - Argument.AssertNotNull(data, nameof(data)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNull(fileIds, nameof(fileIds)); - UploadFileRequest uploadFileRequest = new UploadFileRequest(data, purpose, filename, null); - using MultipartFormDataRequestContent content = uploadFileRequest.ToMultipartRequestContent(); + CreateVectorStoreFileBatchRequest createVectorStoreFileBatchRequest = new CreateVectorStoreFileBatchRequest(fileIds.ToList(), chunkingStrategy, null); RequestContext context = FromCancellationToken(cancellationToken); - Response response = UploadFile(content, content.ContentType, context); - return Response.FromValue(OpenAIFile.FromResponse(response), response); + Response response = CreateVectorStoreFileBatch(vectorStoreId, createVectorStoreFileBatchRequest.ToRequestContent(), context); + return Response.FromValue(VectorStoreFileBatch.FromResponse(response), response); } /// - /// [Protocol Method] Uploads a file for use by other operations. + /// [Protocol Method] Create a vector store file batch. /// /// /// @@ -3220,21 +3864,23 @@ public virtual Response UploadFile(Stream data, OpenAIFilePurpose pu /// /// /// + /// The ID of the vector store for which to create a File Batch. /// The content to send as the body of the request. - /// The 'content-type' header value, always 'multipart/format-data' for this operation. Allowed values: "multipart/form-data". /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// is null. + /// 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. - internal virtual async Task UploadFileAsync(RequestContent content, string contentType, RequestContext context = null) + internal virtual async Task CreateVectorStoreFileBatchAsync(string vectorStoreId, RequestContent content, RequestContext context = null) { + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.UploadFile"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateVectorStoreFileBatch"); scope.Start(); try { - using HttpMessage message = CreateUploadFileRequest(content, contentType, context); + using HttpMessage message = CreateCreateVectorStoreFileBatchRequest(vectorStoreId, content, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -3245,7 +3891,7 @@ internal virtual async Task UploadFileAsync(RequestContent content, st } /// - /// [Protocol Method] Uploads a file for use by other operations. + /// [Protocol Method] Create a vector store file batch. /// /// /// @@ -3254,21 +3900,23 @@ internal virtual async Task UploadFileAsync(RequestContent content, st /// /// /// + /// The ID of the vector store for which to create a File Batch. /// The content to send as the body of the request. - /// The 'content-type' header value, always 'multipart/format-data' for this operation. Allowed values: "multipart/form-data". /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// is null. + /// 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. - internal virtual Response UploadFile(RequestContent content, string contentType, RequestContext context = null) + internal virtual Response CreateVectorStoreFileBatch(string vectorStoreId, RequestContent content, RequestContext context = null) { + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); Argument.AssertNotNull(content, nameof(content)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.UploadFile"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CreateVectorStoreFileBatch"); scope.Start(); try { - using HttpMessage message = CreateUploadFileRequest(content, contentType, context); + using HttpMessage message = CreateCreateVectorStoreFileBatchRequest(vectorStoreId, content, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -3278,64 +3926,65 @@ internal virtual Response UploadFile(RequestContent content, string contentType, } } - /// Delete a previously uploaded file. - /// The ID of the file to delete. + /// Retrieve a vector store file batch. + /// The ID of the vector store that the file batch belongs to. + /// The ID of the file batch being retrieved. /// The cancellation token to use. - /// is null. - /// is an empty string, and was expected to be non-empty. - internal virtual async Task> InternalDeleteFileAsync(string fileId, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual async Task> GetVectorStoreFileBatchAsync(string vectorStoreId, string batchId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(batchId, nameof(batchId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await InternalDeleteFileAsync(fileId, context).ConfigureAwait(false); - return Response.FromValue(InternalFileDeletionStatus.FromResponse(response), response); + Response response = await GetVectorStoreFileBatchAsync(vectorStoreId, batchId, context).ConfigureAwait(false); + return Response.FromValue(VectorStoreFileBatch.FromResponse(response), response); } - /// Delete a previously uploaded file. - /// The ID of the file to delete. + /// Retrieve a vector store file batch. + /// The ID of the vector store that the file batch belongs to. + /// The ID of the file batch being retrieved. /// The cancellation token to use. - /// is null. - /// is an empty string, and was expected to be non-empty. - internal virtual Response InternalDeleteFile(string fileId, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual Response GetVectorStoreFileBatch(string vectorStoreId, string batchId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(batchId, nameof(batchId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = InternalDeleteFile(fileId, context); - return Response.FromValue(InternalFileDeletionStatus.FromResponse(response), response); + Response response = GetVectorStoreFileBatch(vectorStoreId, batchId, context); + return Response.FromValue(VectorStoreFileBatch.FromResponse(response), response); } /// - /// [Protocol Method] Delete a previously uploaded file. + /// [Protocol Method] Retrieve a vector store file batch. /// /// /// /// 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 ID of the file to delete. + /// The ID of the vector store that the file batch belongs to. + /// The ID of the file batch being retrieved. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// is null. - /// is an empty string, and was expected to be non-empty. + /// or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual async Task InternalDeleteFileAsync(string fileId, RequestContext context) + internal virtual async Task GetVectorStoreFileBatchAsync(string vectorStoreId, string batchId, RequestContext context) { - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(batchId, nameof(batchId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalDeleteFile"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetVectorStoreFileBatch"); scope.Start(); try { - using HttpMessage message = CreateInternalDeleteFileRequest(fileId, context); + using HttpMessage message = CreateGetVectorStoreFileBatchRequest(vectorStoreId, batchId, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -3346,35 +3995,32 @@ internal virtual async Task InternalDeleteFileAsync(string fileId, Req } /// - /// [Protocol Method] Delete a previously uploaded file. + /// [Protocol Method] Retrieve a vector store file batch. /// /// /// /// 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 ID of the file to delete. + /// The ID of the vector store that the file batch belongs to. + /// The ID of the file batch being retrieved. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// is null. - /// is an empty string, and was expected to be non-empty. + /// or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual Response InternalDeleteFile(string fileId, RequestContext context) + internal virtual Response GetVectorStoreFileBatch(string vectorStoreId, string batchId, RequestContext context) { - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(batchId, nameof(batchId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.InternalDeleteFile"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetVectorStoreFileBatch"); scope.Start(); try { - using HttpMessage message = CreateInternalDeleteFileRequest(fileId, context); + using HttpMessage message = CreateGetVectorStoreFileBatchRequest(vectorStoreId, batchId, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -3384,36 +4030,40 @@ internal virtual Response InternalDeleteFile(string fileId, RequestContext conte } } - /// Returns information about a specific file. Does not retrieve file content. - /// The ID of the file to retrieve. + /// Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible. + /// The ID of the vector store that the file batch belongs to. + /// The ID of the file batch to cancel. /// The cancellation token to use. - /// is null. - /// is an empty string, and was expected to be non-empty. - public virtual async Task> GetFileAsync(string fileId, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual async Task> CancelVectorStoreFileBatchAsync(string vectorStoreId, string batchId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(batchId, nameof(batchId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await GetFileAsync(fileId, context).ConfigureAwait(false); - return Response.FromValue(OpenAIFile.FromResponse(response), response); + Response response = await CancelVectorStoreFileBatchAsync(vectorStoreId, batchId, context).ConfigureAwait(false); + return Response.FromValue(VectorStoreFileBatch.FromResponse(response), response); } - /// Returns information about a specific file. Does not retrieve file content. - /// The ID of the file to retrieve. + /// Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible. + /// The ID of the vector store that the file batch belongs to. + /// The ID of the file batch to cancel. /// The cancellation token to use. - /// is null. - /// is an empty string, and was expected to be non-empty. - public virtual Response GetFile(string fileId, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual Response CancelVectorStoreFileBatch(string vectorStoreId, string batchId, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(batchId, nameof(batchId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = GetFile(fileId, context); - return Response.FromValue(OpenAIFile.FromResponse(response), response); + Response response = CancelVectorStoreFileBatch(vectorStoreId, batchId, context); + return Response.FromValue(VectorStoreFileBatch.FromResponse(response), response); } /// - /// [Protocol Method] Returns information about a specific file. Does not retrieve file content. + /// [Protocol Method] Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible. /// /// /// @@ -3422,21 +4072,23 @@ public virtual Response GetFile(string fileId, CancellationToken can /// /// /// - /// The ID of the file to retrieve. + /// The ID of the vector store that the file batch belongs to. + /// The ID of the file batch to cancel. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// is null. - /// is an empty string, and was expected to be non-empty. + /// or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual async Task GetFileAsync(string fileId, RequestContext context) + internal virtual async Task CancelVectorStoreFileBatchAsync(string vectorStoreId, string batchId, RequestContext context) { - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(batchId, nameof(batchId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetFile"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CancelVectorStoreFileBatch"); scope.Start(); try { - using HttpMessage message = CreateGetFileRequest(fileId, context); + using HttpMessage message = CreateCancelVectorStoreFileBatchRequest(vectorStoreId, batchId, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -3447,7 +4099,7 @@ internal virtual async Task GetFileAsync(string fileId, RequestContext } /// - /// [Protocol Method] Returns information about a specific file. Does not retrieve file content. + /// [Protocol Method] Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible. /// /// /// @@ -3456,21 +4108,23 @@ internal virtual async Task GetFileAsync(string fileId, RequestContext /// /// /// - /// The ID of the file to retrieve. + /// The ID of the vector store that the file batch belongs to. + /// The ID of the file batch to cancel. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// is null. - /// is an empty string, and was expected to be non-empty. + /// or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual Response GetFile(string fileId, RequestContext context) + internal virtual Response CancelVectorStoreFileBatch(string vectorStoreId, string batchId, RequestContext context) { - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(batchId, nameof(batchId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetFile"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.CancelVectorStoreFileBatch"); scope.Start(); try { - using HttpMessage message = CreateGetFileRequest(fileId, context); + using HttpMessage message = CreateCancelVectorStoreFileBatchRequest(vectorStoreId, batchId, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -3480,36 +4134,50 @@ internal virtual Response GetFile(string fileId, RequestContext context) } } - /// Returns information about a specific file. Does not retrieve file content. - /// The ID of the file to retrieve. + /// Returns a list of vector store files in a batch. + /// The ID of the vector store that the file batch belongs to. + /// The ID of the file batch that the files belong to. + /// Filter by file status. + /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. + /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The cancellation token to use. - /// is null. - /// is an empty string, and was expected to be non-empty. - public virtual async Task> GetFileContentAsync(string fileId, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual async Task> GetVectorStoreFileBatchFilesAsync(string vectorStoreId, string batchId, VectorStoreFileStatusFilter? filter = null, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(batchId, nameof(batchId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = await GetFileContentAsync(fileId, context).ConfigureAwait(false); - return Response.FromValue(response.Content, response); + Response response = await GetVectorStoreFileBatchFilesAsync(vectorStoreId, batchId, filter?.ToString(), limit, order?.ToString(), after, before, context).ConfigureAwait(false); + return Response.FromValue(OpenAIPageableListOfVectorStoreFile.FromResponse(response), response); } - /// Returns information about a specific file. Does not retrieve file content. - /// The ID of the file to retrieve. + /// Returns a list of vector store files in a batch. + /// The ID of the vector store that the file batch belongs to. + /// The ID of the file batch that the files belong to. + /// Filter by file status. + /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. + /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The cancellation token to use. - /// is null. - /// is an empty string, and was expected to be non-empty. - public virtual Response GetFileContent(string fileId, CancellationToken cancellationToken = default) + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public virtual Response GetVectorStoreFileBatchFiles(string vectorStoreId, string batchId, VectorStoreFileStatusFilter? filter = null, int? limit = null, ListSortOrder? order = null, string after = null, string before = null, CancellationToken cancellationToken = default) { - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(batchId, nameof(batchId)); RequestContext context = FromCancellationToken(cancellationToken); - Response response = GetFileContent(fileId, context); - return Response.FromValue(response.Content, response); + Response response = GetVectorStoreFileBatchFiles(vectorStoreId, batchId, filter?.ToString(), limit, order?.ToString(), after, before, context); + return Response.FromValue(OpenAIPageableListOfVectorStoreFile.FromResponse(response), response); } /// - /// [Protocol Method] Returns information about a specific file. Does not retrieve file content. + /// [Protocol Method] Returns a list of vector store files in a batch. /// /// /// @@ -3518,21 +4186,28 @@ public virtual Response GetFileContent(string fileId, CancellationTo /// /// /// - /// The ID of the file to retrieve. + /// The ID of the vector store that the file batch belongs to. + /// The ID of the file batch that the files belong to. + /// Filter by file status. Allowed values: "in_progress" | "completed" | "failed" | "cancelled". + /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". + /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// is null. - /// is an empty string, and was expected to be non-empty. + /// or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual async Task GetFileContentAsync(string fileId, RequestContext context) + internal virtual async Task GetVectorStoreFileBatchFilesAsync(string vectorStoreId, string batchId, string filter, int? limit, string order, string after, string before, RequestContext context) { - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(batchId, nameof(batchId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetFileContent"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetVectorStoreFileBatchFiles"); scope.Start(); try { - using HttpMessage message = CreateGetFileContentRequest(fileId, context); + using HttpMessage message = CreateGetVectorStoreFileBatchFilesRequest(vectorStoreId, batchId, filter, limit, order, after, before, context); return await _pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); } catch (Exception e) @@ -3543,7 +4218,7 @@ internal virtual async Task GetFileContentAsync(string fileId, Request } /// - /// [Protocol Method] Returns information about a specific file. Does not retrieve file content. + /// [Protocol Method] Returns a list of vector store files in a batch. /// /// /// @@ -3552,21 +4227,28 @@ internal virtual async Task GetFileContentAsync(string fileId, Request /// /// /// - /// The ID of the file to retrieve. + /// The ID of the vector store that the file batch belongs to. + /// The ID of the file batch that the files belong to. + /// Filter by file status. Allowed values: "in_progress" | "completed" | "failed" | "cancelled". + /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + /// Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order. Allowed values: "asc" | "desc". + /// A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. + /// A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. /// The request context, which can override default behaviors of the client pipeline on a per-call basis. - /// is null. - /// is an empty string, and was expected to be non-empty. + /// or is null. + /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. - internal virtual Response GetFileContent(string fileId, RequestContext context) + internal virtual Response GetVectorStoreFileBatchFiles(string vectorStoreId, string batchId, string filter, int? limit, string order, string after, string before, RequestContext context) { - Argument.AssertNotNullOrEmpty(fileId, nameof(fileId)); + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNullOrEmpty(batchId, nameof(batchId)); - using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetFileContent"); + using var scope = ClientDiagnostics.CreateScope("AssistantsClient.GetVectorStoreFileBatchFiles"); scope.Start(); try { - using HttpMessage message = CreateGetFileContentRequest(fileId, context); + using HttpMessage message = CreateGetVectorStoreFileBatchFilesRequest(vectorStoreId, batchId, filter, limit, order, after, before, context); return _pipeline.ProcessMessage(message, context); } catch (Exception e) @@ -3576,6 +4258,380 @@ internal virtual Response GetFileContent(string fileId, RequestContext context) } } + internal HttpMessage CreateInternalGetMessagesRequest(string threadId, string runId, int? limit, string order, string after, string before, 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("/threads/", false); + uri.AppendPath(threadId, true); + uri.AppendPath("/messages", false); + if (runId != null) + { + uri.AppendQuery("runId", runId, true); + } + if (limit != null) + { + uri.AppendQuery("limit", limit.Value, true); + } + if (order != null) + { + uri.AppendQuery("order", order, true); + } + if (after != null) + { + uri.AppendQuery("after", after, true); + } + if (before != null) + { + uri.AppendQuery("before", before, true); + } + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateCreateRunRequest(string threadId, RequestContent content, IEnumerable runInclude, 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("/threads/", false); + uri.AppendPath(threadId, true); + uri.AppendPath("/runs", false); + if (runInclude != null && !(runInclude is ChangeTrackingList changeTrackingList && changeTrackingList.IsUndefined)) + { + uri.AppendQueryDelimited("include[]", runInclude, ",", true); + } + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + request.Headers.Add("Content-Type", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateGetRunStepRequest(string threadId, string runId, string stepId, IEnumerable runInclude, 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("/threads/", false); + uri.AppendPath(threadId, true); + uri.AppendPath("/runs/", false); + uri.AppendPath(runId, true); + uri.AppendPath("/steps/", false); + uri.AppendPath(stepId, true); + if (runInclude != null && !(runInclude is ChangeTrackingList changeTrackingList && changeTrackingList.IsUndefined)) + { + uri.AppendQueryDelimited("include[]", runInclude, ",", true); + } + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateInternalGetRunStepsRequest(string threadId, string runId, IEnumerable runInclude, int? limit, string order, string after, string before, 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("/threads/", false); + uri.AppendPath(threadId, true); + uri.AppendPath("/runs/", false); + uri.AppendPath(runId, true); + uri.AppendPath("/steps", false); + if (runInclude != null && !(runInclude is ChangeTrackingList changeTrackingList && changeTrackingList.IsUndefined)) + { + uri.AppendQueryDelimited("include[]", runInclude, ",", true); + } + if (limit != null) + { + uri.AppendQuery("limit", limit.Value, true); + } + if (order != null) + { + uri.AppendQuery("order", order, true); + } + if (after != null) + { + uri.AppendQuery("after", after, true); + } + if (before != null) + { + uri.AppendQuery("before", before, true); + } + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateGetVectorStoresRequest(int? limit, string order, string after, string before, 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("/vector_stores", false); + if (limit != null) + { + uri.AppendQuery("limit", limit.Value, true); + } + if (order != null) + { + uri.AppendQuery("order", order, true); + } + if (after != null) + { + uri.AppendQuery("after", after, true); + } + if (before != null) + { + uri.AppendQuery("before", before, true); + } + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateCreateVectorStoreRequest(RequestContent content, 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("/vector_stores", false); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + request.Headers.Add("Content-Type", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateGetVectorStoreRequest(string vectorStoreId, 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("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateModifyVectorStoreRequest(string vectorStoreId, RequestContent content, 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("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + request.Headers.Add("Content-Type", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateDeleteVectorStoreRequest(string vectorStoreId, RequestContext context) + { + var message = _pipeline.CreateMessage(context, ResponseClassifier200); + var request = message.Request; + request.Method = RequestMethod.Delete; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateGetVectorStoreFilesRequest(string vectorStoreId, string filter, int? limit, string order, string after, string before, 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("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + uri.AppendPath("/files", false); + if (filter != null) + { + uri.AppendQuery("filter", filter, true); + } + if (limit != null) + { + uri.AppendQuery("limit", limit.Value, true); + } + if (order != null) + { + uri.AppendQuery("order", order, true); + } + if (after != null) + { + uri.AppendQuery("after", after, true); + } + if (before != null) + { + uri.AppendQuery("before", before, true); + } + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateCreateVectorStoreFileRequest(string vectorStoreId, RequestContent content, 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("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + uri.AppendPath("/files", false); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + request.Headers.Add("Content-Type", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateGetVectorStoreFileRequest(string vectorStoreId, string fileId, 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("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + uri.AppendPath("/files/", false); + uri.AppendPath(fileId, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateDeleteVectorStoreFileRequest(string vectorStoreId, string fileId, RequestContext context) + { + var message = _pipeline.CreateMessage(context, ResponseClassifier200); + var request = message.Request; + request.Method = RequestMethod.Delete; + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + uri.AppendPath("/files/", false); + uri.AppendPath(fileId, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateCreateVectorStoreFileBatchRequest(string vectorStoreId, RequestContent content, 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("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + uri.AppendPath("/file_batches", false); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + request.Headers.Add("Content-Type", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateGetVectorStoreFileBatchRequest(string vectorStoreId, string batchId, 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("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + uri.AppendPath("/file_batches/", false); + uri.AppendPath(batchId, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateCancelVectorStoreFileBatchRequest(string vectorStoreId, string batchId, 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("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + uri.AppendPath("/file_batches/", false); + uri.AppendPath(batchId, true); + uri.AppendPath("/cancel", false); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateGetVectorStoreFileBatchFilesRequest(string vectorStoreId, string batchId, string filter, int? limit, string order, string after, string before, 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("/vector_stores/", false); + uri.AppendPath(vectorStoreId, true); + uri.AppendPath("/file_batches/", false); + uri.AppendPath(batchId, true); + uri.AppendPath("/files", false); + if (filter != null) + { + uri.AppendQuery("filter", filter, true); + } + if (limit != null) + { + uri.AppendQuery("limit", limit.Value, true); + } + if (order != null) + { + uri.AppendQuery("order", order, true); + } + if (after != null) + { + uri.AppendQuery("after", after, true); + } + if (before != null) + { + uri.AppendQuery("before", before, 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) { diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsClientOptions.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsClientOptions.cs index a847db2052bd..1f5ea9b91e20 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsClientOptions.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsClientOptions.cs @@ -13,13 +13,23 @@ namespace Azure.AI.OpenAI.Assistants /// Client options for AssistantsClient. public partial class AssistantsClientOptions : ClientOptions { - private const ServiceVersion LatestVersion = ServiceVersion.V2024_02_15_Preview; + private const ServiceVersion LatestVersion = ServiceVersion.V2025_01_01_Preview; /// The version of the service to use. public enum ServiceVersion { /// Service version "2024-02-15-preview". V2024_02_15_Preview = 1, + /// Service version "2024-05-01-preview". + V2024_05_01_Preview = 2, + /// Service version "2024-07-01-preview". + V2024_07_01_Preview = 3, + /// Service version "2024-09-01-preview". + V2024_09_01_Preview = 4, + /// Service version "2024-10-01-preview". + V2024_10_01_Preview = 5, + /// Service version "2025-01-01-preview". + V2025_01_01_Preview = 6, } internal string Version { get; } @@ -30,6 +40,11 @@ public AssistantsClientOptions(ServiceVersion version = LatestVersion) Version = version switch { ServiceVersion.V2024_02_15_Preview => "2024-02-15-preview", + ServiceVersion.V2024_05_01_Preview => "2024-05-01-preview", + ServiceVersion.V2024_07_01_Preview => "2024-07-01-preview", + ServiceVersion.V2024_09_01_Preview => "2024-09-01-preview", + ServiceVersion.V2024_10_01_Preview => "2024-10-01-preview", + ServiceVersion.V2025_01_01_Preview => "2025-01-01-preview", _ => throw new NotSupportedException() }; } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsModelFactory.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsModelFactory.cs index 8b4620e1331e..b710ccbef03b 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsModelFactory.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsModelFactory.cs @@ -5,6 +5,7 @@ #nullable disable +using System; using System.Collections.Generic; using System.Linq; @@ -21,15 +22,28 @@ public static partial class AssistantsModelFactory /// /// The collection of tools to enable for the new assistant. /// 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 . + /// The available derived classes include , and . /// - /// A list of previously uploaded file IDs to attach to the assistant. + /// + /// A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` + /// tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + /// + /// + /// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, + /// while lower values like 0.2 will make it more focused and deterministic. + /// + /// + /// An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. + /// So 0.1 means only the tokens comprising the top 10% probability mass are considered. + /// + /// We generally recommend altering this or temperature but not both. + /// + /// The response format of the tool calls used by this assistant. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// A new instance for mocking. - public static AssistantCreationOptions AssistantCreationOptions(string model = null, string name = null, string description = null, string instructions = null, IEnumerable tools = null, IEnumerable fileIds = null, IDictionary metadata = null) + public static AssistantCreationOptions AssistantCreationOptions(string model = null, string name = null, string description = null, string instructions = null, IEnumerable tools = null, CreateToolResourcesOptions toolResources = null, float? temperature = null, float? topP = null, BinaryData responseFormat = null, IDictionary metadata = null) { tools ??= new List(); - fileIds ??= new List(); metadata ??= new Dictionary(); return new AssistantCreationOptions( @@ -38,37 +52,94 @@ public static AssistantCreationOptions AssistantCreationOptions(string model = n description, instructions, tools?.ToList(), - fileIds?.ToList(), + toolResources, + temperature, + topP, + responseFormat, metadata, serializedAdditionalRawData: null); } - /// Initializes a new instance of . - /// The role associated with the assistant thread message. Currently, only 'user' is supported when providing initial messages to a new thread. - /// The textual content of the initial message. Currently, robust input including images and annotated text may only be provided via a separate call to the create message API. - /// - /// A list of file IDs that the assistant should use. Useful for tools like retrieval and code_interpreter that can - /// access files. + /// Initializes a new instance of . + /// A list of file IDs to add to the vector store. There can be a maximum of 10000 files in a vector store. + /// + /// The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy. + /// 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 . /// /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. - /// A new instance for mocking. - public static ThreadInitializationMessage ThreadInitializationMessage(MessageRole role = default, string content = null, IEnumerable fileIds = null, IDictionary metadata = null) + /// A new instance for mocking. + public static CreateFileSearchToolResourceVectorStoreOptions CreateFileSearchToolResourceVectorStoreOptions(IEnumerable fileIds = null, VectorStoreChunkingStrategyRequest chunkingStrategy = null, IDictionary metadata = null) { fileIds ??= new List(); metadata ??= new Dictionary(); - return new ThreadInitializationMessage(role, content, fileIds?.ToList(), metadata, serializedAdditionalRawData: null); + return new CreateFileSearchToolResourceVectorStoreOptions(fileIds?.ToList(), chunkingStrategy, metadata, serializedAdditionalRawData: null); } - /// Initializes a new instance of . - /// The object type. - /// The textual content associated with this text annotation item. - /// The first text index associated with this text annotation. - /// The last text index associated with this text annotation. - /// A new instance for mocking. - public static MessageTextAnnotation MessageTextAnnotation(string type = null, string text = null, int startIndex = default, int endIndex = default) + /// Initializes a new instance of . + /// The options for the static chunking strategy. + /// A new instance for mocking. + public static VectorStoreStaticChunkingStrategyRequest VectorStoreStaticChunkingStrategyRequest(VectorStoreStaticChunkingStrategyOptions @static = null) + { + return new VectorStoreStaticChunkingStrategyRequest(VectorStoreChunkingStrategyRequestType.Static, serializedAdditionalRawData: null, @static); + } + + /// Initializes a new instance of . + /// Resources to be used by the `code_interpreter tool` consisting of file IDs. + /// Resources to be used by the `file_search` tool consisting of vector store IDs. + /// A new instance for mocking. + public static ToolResources ToolResources(CodeInterpreterToolResource codeInterpreter = null, FileSearchToolResource fileSearch = null) + { + return new ToolResources(codeInterpreter, fileSearch, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// + /// A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files + /// associated with the tool. + /// + /// A new instance for mocking. + public static CodeInterpreterToolResource CodeInterpreterToolResource(IEnumerable fileIds = null) + { + fileIds ??= new List(); + + return new CodeInterpreterToolResource(fileIds?.ToList(), serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// + /// The ID of the vector store attached to this assistant. There can be a maximum of 1 vector + /// store attached to the assistant. + /// + /// A new instance for mocking. + public static FileSearchToolResource FileSearchToolResource(IEnumerable vectorStoreIds = null) + { + vectorStoreIds ??= new List(); + + return new FileSearchToolResource(vectorStoreIds?.ToList(), serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// + /// The role of the entity that is creating the message. Allowed values include: + /// - `user`: Indicates the message is sent by an actual user and should be used in most cases to represent user-generated messages. + /// - `assistant`: Indicates the message is generated by the assistant. Use this value to insert messages from the assistant into + /// the conversation. + /// + /// + /// The textual content of the initial message. Currently, robust input including images and annotated text may only be provided via + /// a separate call to the create message API. + /// + /// A list of files attached to the message, and the tools they should be added to. + /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. + /// A new instance for mocking. + public static ThreadMessageOptions ThreadMessageOptions(MessageRole role = default, string content = null, IEnumerable attachments = null, IDictionary metadata = null) { - return new UnknownMessageTextAnnotation(type, text, startIndex, endIndex, serializedAdditionalRawData: null); + attachments ??= new List(); + metadata ??= new Dictionary(); + + return new ThreadMessageOptions(role, content, attachments?.ToList(), metadata, serializedAdditionalRawData: null); } /// Initializes a new instance of . @@ -79,15 +150,46 @@ public static MessageTextAnnotation MessageTextAnnotation(string type = null, st /// Additional instructions to append at the end of the instructions for the run. This is useful for modifying the behavior /// on a per-run basis without overriding other instructions. /// + /// Adds additional messages to the thread before creating the run. /// /// The overridden list of enabled tools that the assistant should use to run the thread. /// 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 . + /// The available derived classes include , and . + /// + /// Whether to enable parallel function calling during tool use. + /// + /// If `true`, returns a stream of events that happen during the Run as server-sent events, + /// terminating when the Run enters a terminal state with a `data: [DONE]` message. /// + /// + /// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output + /// more random, while lower values like 0.2 will make it more focused and deterministic. + /// + /// + /// An alternative to sampling with temperature, called nucleus sampling, where the model + /// considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens + /// comprising the top 10% probability mass are considered. + /// + /// We generally recommend altering this or temperature but not both. + /// + /// + /// The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only + /// the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, + /// the run will end with status `incomplete`. See `incomplete_details` for more info. + /// + /// + /// The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort + /// to use only the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of + /// completion tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info. + /// + /// The strategy to use for dropping messages as the context windows moves forward. + /// Controls whether or not and which tool is called by the model. + /// Specifies the format that the model must output. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// A new instance for mocking. - public static CreateRunOptions CreateRunOptions(string assistantId = null, string overrideModelName = null, string overrideInstructions = null, string additionalInstructions = null, IEnumerable overrideTools = null, IDictionary metadata = null) + public static CreateRunOptions CreateRunOptions(string assistantId = null, string overrideModelName = null, string overrideInstructions = null, string additionalInstructions = null, IEnumerable additionalMessages = null, IEnumerable overrideTools = null, bool? parallelToolCalls = null, bool? stream = null, float? temperature = null, float? topP = null, int? maxPromptTokens = null, int? maxCompletionTokens = null, TruncationObject truncationStrategy = null, BinaryData toolChoice = null, BinaryData responseFormat = null, IDictionary metadata = null) { + additionalMessages ??= new List(); overrideTools ??= new List(); metadata ??= new Dictionary(); @@ -96,7 +198,17 @@ public static CreateRunOptions CreateRunOptions(string assistantId = null, strin overrideModelName, overrideInstructions, additionalInstructions, + additionalMessages?.ToList(), overrideTools?.ToList(), + parallelToolCalls, + stream, + temperature, + topP, + maxPromptTokens, + maxCompletionTokens, + truncationStrategy, + toolChoice, + responseFormat, metadata, serializedAdditionalRawData: null); } @@ -119,19 +231,59 @@ public static RunError RunError(string code = null, string message = null) return new RunError(code, message, serializedAdditionalRawData: null); } + /// Initializes a new instance of . + /// Number of completion tokens used over the course of the run. + /// Number of prompt tokens used over the course of the run. + /// Total number of tokens used (prompt + completion). + /// A new instance for mocking. + public static RunCompletionUsage RunCompletionUsage(long completionTokens = default, long promptTokens = default, long totalTokens = default) + { + return new RunCompletionUsage(completionTokens, promptTokens, totalTokens, serializedAdditionalRawData: null); + } + /// Initializes a new instance of . /// The ID of the assistant for which the thread should be created. - /// The details used to create the new thread. + /// The details used to create the new thread. If no thread is provided, an empty one will be created. /// The overridden model that the assistant should use to run the thread. /// The overridden system instructions the assistant should use to run the thread. /// /// The overridden list of enabled tools the assistant should use to run the thread. /// 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 . + /// The available derived classes include , and . + /// + /// Whether to enable parallel function calling during tool use. + /// Override the tools the assistant can use for this run. This is useful for modifying the behavior on a per-run basis. + /// + /// If `true`, returns a stream of events that happen during the Run as server-sent events, + /// terminating when the Run enters a terminal state with a `data: [DONE]` message. + /// + /// + /// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output + /// more random, while lower values like 0.2 will make it more focused and deterministic. + /// + /// + /// An alternative to sampling with temperature, called nucleus sampling, where the model + /// considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens + /// comprising the top 10% probability mass are considered. + /// + /// We generally recommend altering this or temperature but not both. + /// + /// + /// The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only + /// the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, + /// the run will end with status `incomplete`. See `incomplete_details` for more info. + /// + /// + /// The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort to use only + /// the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of completion tokens + /// specified, the run will end with status `incomplete`. See `incomplete_details` for more info. /// + /// The strategy to use for dropping messages as the context windows moves forward. + /// Controls whether or not and which tool is called by the model. + /// Specifies the format that the model must output. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// A new instance for mocking. - public static CreateAndRunThreadOptions CreateAndRunThreadOptions(string assistantId = null, AssistantThreadCreationOptions thread = null, string overrideModelName = null, string overrideInstructions = null, IEnumerable overrideTools = null, IDictionary metadata = null) + public static CreateAndRunThreadOptions CreateAndRunThreadOptions(string assistantId = null, AssistantThreadCreationOptions thread = null, string overrideModelName = null, string overrideInstructions = null, IEnumerable overrideTools = null, bool? parallelToolCalls = null, UpdateToolResourcesOptions toolResources = null, bool? stream = null, float? temperature = null, float? topP = null, int? maxPromptTokens = null, int? maxCompletionTokens = null, TruncationObject truncationStrategy = null, BinaryData toolChoice = null, BinaryData responseFormat = null, IDictionary metadata = null) { overrideTools ??= new List(); metadata ??= new Dictionary(); @@ -142,6 +294,16 @@ public static CreateAndRunThreadOptions CreateAndRunThreadOptions(string assista overrideModelName, overrideInstructions, overrideTools?.ToList(), + parallelToolCalls, + toolResources, + stream, + temperature, + topP, + maxPromptTokens, + maxCompletionTokens, + truncationStrategy, + toolChoice, + responseFormat, metadata, serializedAdditionalRawData: null); } @@ -166,7 +328,7 @@ public static RunStepMessageCreationReference RunStepMessageCreationReference(st /// /// A list of tool call details for this run step. /// 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 . + /// The available derived classes include , and . /// /// A new instance for mocking. public static RunStepToolCallDetails RunStepToolCallDetails(IEnumerable toolCalls = null) @@ -209,15 +371,37 @@ public static RunStepCodeInterpreterImageReference RunStepCodeInterpreterImageRe return new RunStepCodeInterpreterImageReference(fileId, serializedAdditionalRawData: null); } - /// Initializes a new instance of . + /// Initializes a new instance of . /// The ID of the tool call. This ID must be referenced when you submit tool outputs. - /// The key/value pairs produced by the retrieval tool. - /// A new instance for mocking. - public static RunStepRetrievalToolCall RunStepRetrievalToolCall(string id = null, IReadOnlyDictionary retrieval = null) + /// The results of the file search. + /// A new instance for mocking. + public static RunStepFileSearchToolCall RunStepFileSearchToolCall(string id = null, IEnumerable fileSearch = null) { - retrieval ??= new Dictionary(); + fileSearch ??= new List(); - return new RunStepRetrievalToolCall("retrieval", id, serializedAdditionalRawData: null, retrieval); + return new RunStepFileSearchToolCall("file_search", id, serializedAdditionalRawData: null, fileSearch?.ToList()); + } + + /// Initializes a new instance of . + /// The ID of the file that result was found in. + /// The name of the file that result was found in. + /// The score of the result. All values must be a floating point number between 0 and 1. + /// The content of the result that was found. The content is only included if requested via the include query parameter. + /// A new instance for mocking. + public static FileSearchToolCallResult FileSearchToolCallResult(string fileId = null, string fileName = null, double score = default, IEnumerable content = null) + { + content ??= new List(); + + return new FileSearchToolCallResult(fileId, fileName, score, content?.ToList(), serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The type of the content. + /// The text content of the file. + /// A new instance for mocking. + public static FileSearchToolCallResultContentItem FileSearchToolCallResultContentItem(FileSearchToolCallResultContentItemType? type = null, string text = null) + { + return new FileSearchToolCallResultContentItem(type, text, serializedAdditionalRawData: null); } /// Initializes a new instance of . @@ -228,5 +412,488 @@ public static RunStepError RunStepError(RunStepErrorCode code = default, string { return new RunStepError(code, message, serializedAdditionalRawData: null); } + + /// Initializes a new instance of . + /// Number of completion tokens used over the course of the run step. + /// Number of prompt tokens used over the course of the run step. + /// Total number of tokens used (prompt + completion). + /// A new instance for mocking. + public static RunStepCompletionUsage RunStepCompletionUsage(long completionTokens = default, long promptTokens = default, long totalTokens = default) + { + return new RunStepCompletionUsage(completionTokens, promptTokens, totalTokens, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The object type, which is always list. + /// The requested list of items. + /// The first ID represented in this list. + /// The last ID represented in this list. + /// A value indicating whether there are additional values available not captured in this list. + /// A new instance for mocking. + public static OpenAIPageableListOfVectorStore OpenAIPageableListOfVectorStore(OpenAIPageableListOfVectorStoreObject @object = default, IEnumerable data = null, string firstId = null, string lastId = null, bool hasMore = default) + { + data ??= new List(); + + return new OpenAIPageableListOfVectorStore( + @object, + data?.ToList(), + firstId, + lastId, + hasMore, + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The identifier, which can be referenced in API endpoints. + /// The object type, which is always `vector_store`. + /// The Unix timestamp (in seconds) for when the vector store was created. + /// The name of the vector store. + /// The total number of bytes used by the files in the vector store. + /// Files count grouped by status processed or being processed by this vector store. + /// The status of the vector store, which can be either `expired`, `in_progress`, or `completed`. A status of `completed` indicates that the vector store is ready for use. + /// Details on when this vector store expires. + /// The Unix timestamp (in seconds) for when the vector store will expire. + /// The Unix timestamp (in seconds) for when the vector store was last active. + /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. + /// A new instance for mocking. + public static VectorStore VectorStore(string id = null, VectorStoreObject @object = default, DateTimeOffset createdAt = default, string name = null, int usageBytes = default, VectorStoreFileCount fileCounts = null, VectorStoreStatus status = default, VectorStoreExpirationPolicy expiresAfter = null, DateTimeOffset? expiresAt = null, DateTimeOffset? lastActiveAt = null, IReadOnlyDictionary metadata = null) + { + metadata ??= new Dictionary(); + + return new VectorStore( + id, + @object, + createdAt, + name, + usageBytes, + fileCounts, + status, + expiresAfter, + expiresAt, + lastActiveAt, + metadata, + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The number of files that are currently being processed. + /// The number of files that have been successfully processed. + /// The number of files that have failed to process. + /// The number of files that were cancelled. + /// The total number of files. + /// A new instance for mocking. + public static VectorStoreFileCount VectorStoreFileCount(int inProgress = default, int completed = default, int failed = default, int cancelled = default, int total = default) + { + return new VectorStoreFileCount( + inProgress, + completed, + failed, + cancelled, + total, + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The ID of the resource specified for deletion. + /// A value indicating whether deletion was successful. + /// The object type, which is always 'vector_store.deleted'. + /// A new instance for mocking. + public static VectorStoreDeletionStatus VectorStoreDeletionStatus(string id = null, bool deleted = default, VectorStoreDeletionStatusObject @object = default) + { + return new VectorStoreDeletionStatus(id, deleted, @object, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The object type, which is always list. + /// The requested list of items. + /// The first ID represented in this list. + /// The last ID represented in this list. + /// A value indicating whether there are additional values available not captured in this list. + /// A new instance for mocking. + public static OpenAIPageableListOfVectorStoreFile OpenAIPageableListOfVectorStoreFile(OpenAIPageableListOfVectorStoreFileObject @object = default, IEnumerable data = null, string firstId = null, string lastId = null, bool hasMore = default) + { + data ??= new List(); + + return new OpenAIPageableListOfVectorStoreFile( + @object, + data?.ToList(), + firstId, + lastId, + hasMore, + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The identifier, which can be referenced in API endpoints. + /// The object type, which is always `vector_store.file`. + /// + /// The total vector store usage in bytes. Note that this may be different from the original file + /// size. + /// + /// The Unix timestamp (in seconds) for when the vector store file was created. + /// The ID of the vector store that the file is attached to. + /// The status of the vector store file, which can be either `in_progress`, `completed`, `cancelled`, or `failed`. The status `completed` indicates that the vector store file is ready for use. + /// The last error associated with this vector store file. Will be `null` if there are no errors. + /// + /// The strategy used to chunk the file. + /// 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 . + /// + /// A new instance for mocking. + public static VectorStoreFile VectorStoreFile(string id = null, VectorStoreFileObject @object = default, int usageBytes = default, DateTimeOffset createdAt = default, string vectorStoreId = null, VectorStoreFileStatus status = default, VectorStoreFileError lastError = null, VectorStoreChunkingStrategyResponse chunkingStrategy = null) + { + return new VectorStoreFile( + id, + @object, + usageBytes, + createdAt, + vectorStoreId, + status, + lastError, + chunkingStrategy, + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// One of `server_error` or `rate_limit_exceeded`. + /// A human-readable description of the error. + /// A new instance for mocking. + public static VectorStoreFileError VectorStoreFileError(VectorStoreFileErrorCode code = default, string message = null) + { + return new VectorStoreFileError(code, message, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The options for the static chunking strategy. + /// A new instance for mocking. + public static VectorStoreStaticChunkingStrategyResponse VectorStoreStaticChunkingStrategyResponse(VectorStoreStaticChunkingStrategyOptions @static = null) + { + return new VectorStoreStaticChunkingStrategyResponse(VectorStoreChunkingStrategyResponseType.Static, serializedAdditionalRawData: null, @static); + } + + /// Initializes a new instance of . + /// The ID of the resource specified for deletion. + /// A value indicating whether deletion was successful. + /// The object type, which is always 'vector_store.deleted'. + /// A new instance for mocking. + public static VectorStoreFileDeletionStatus VectorStoreFileDeletionStatus(string id = null, bool deleted = default, VectorStoreFileDeletionStatusObject @object = default) + { + return new VectorStoreFileDeletionStatus(id, deleted, @object, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The identifier, which can be referenced in API endpoints. + /// The object type, which is always `vector_store.file_batch`. + /// The Unix timestamp (in seconds) for when the vector store files batch was created. + /// The ID of the vector store that the file is attached to. + /// The status of the vector store files batch, which can be either `in_progress`, `completed`, `cancelled` or `failed`. + /// Files count grouped by status processed or being processed by this vector store. + /// A new instance for mocking. + public static VectorStoreFileBatch VectorStoreFileBatch(string id = null, VectorStoreFileBatchObject @object = default, DateTimeOffset createdAt = default, string vectorStoreId = null, VectorStoreFileBatchStatus status = default, VectorStoreFileCount fileCounts = null) + { + return new VectorStoreFileBatch( + id, + @object, + createdAt, + vectorStoreId, + status, + fileCounts, + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The identifier of the message, which can be referenced in API endpoints. + /// The object type, which is always `thread.message.delta`. + /// The delta containing the fields that have changed on the Message. + /// A new instance for mocking. + public static MessageDeltaChunk MessageDeltaChunk(string id = null, MessageDeltaChunkObject @object = default, MessageDelta delta = null) + { + return new MessageDeltaChunk(id, @object, delta, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The entity that produced the message. + /// + /// The content of the message as an array of text and/or images. + /// 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 . + /// + /// A new instance for mocking. + public static MessageDelta MessageDelta(MessageRole role = default, IEnumerable content = null) + { + content ??= new List(); + + return new MessageDelta(role, content?.ToList(), serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The index of the content part of the message. + /// The type of content for this content part. + /// A new instance for mocking. + public static MessageDeltaContent MessageDeltaContent(int index = default, string type = null) + { + return new UnknownMessageDeltaContent(index, type, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The index of the content part of the message. + /// The image_file data. + /// A new instance for mocking. + public static MessageDeltaImageFileContent MessageDeltaImageFileContent(int index = default, MessageDeltaImageFileContentObject imageFile = null) + { + return new MessageDeltaImageFileContent(index, "image_file", serializedAdditionalRawData: null, imageFile); + } + + /// Initializes a new instance of . + /// The file ID of the image in the message content. + /// A new instance for mocking. + public static MessageDeltaImageFileContentObject MessageDeltaImageFileContentObject(string fileId = null) + { + return new MessageDeltaImageFileContentObject(fileId, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The index of the content part of the message. + /// The text content details. + /// A new instance for mocking. + public static MessageDeltaTextContentObject MessageDeltaTextContentObject(int index = default, MessageDeltaTextContent text = null) + { + return new MessageDeltaTextContentObject(index, "text", serializedAdditionalRawData: null, text); + } + + /// Initializes a new instance of . + /// The data that makes up the text. + /// + /// Annotations for the text. + /// 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 . + /// + /// A new instance for mocking. + public static MessageDeltaTextContent MessageDeltaTextContent(string value = null, IEnumerable annotations = null) + { + annotations ??= new List(); + + return new MessageDeltaTextContent(value, annotations?.ToList(), serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The index of the annotation within a text content part. + /// The type of the text content annotation. + /// A new instance for mocking. + public static MessageDeltaTextAnnotation MessageDeltaTextAnnotation(int index = default, string type = null) + { + return new UnknownMessageDeltaTextAnnotation(index, type, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The index of the annotation within a text content part. + /// The file citation information. + /// The text in the message content that needs to be replaced. + /// The start index of this annotation in the content text. + /// The end index of this annotation in the content text. + /// A new instance for mocking. + public static MessageDeltaTextFileCitationAnnotationObject MessageDeltaTextFileCitationAnnotationObject(int index = default, MessageDeltaTextFileCitationAnnotation fileCitation = null, string text = null, int? startIndex = null, int? endIndex = null) + { + return new MessageDeltaTextFileCitationAnnotationObject( + index, + "file_citation", + serializedAdditionalRawData: null, + fileCitation, + text, + startIndex, + endIndex); + } + + /// Initializes a new instance of . + /// The ID of the specific file the citation is from. + /// The specific quote in the cited file. + /// A new instance for mocking. + public static MessageDeltaTextFileCitationAnnotation MessageDeltaTextFileCitationAnnotation(string fileId = null, string quote = null) + { + return new MessageDeltaTextFileCitationAnnotation(fileId, quote, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The index of the annotation within a text content part. + /// The file path information. + /// The start index of this annotation in the content text. + /// The end index of this annotation in the content text. + /// The text in the message content that needs to be replaced. + /// A new instance for mocking. + public static MessageDeltaTextFilePathAnnotationObject MessageDeltaTextFilePathAnnotationObject(int index = default, MessageDeltaTextFilePathAnnotation filePath = null, int? startIndex = null, int? endIndex = null, string text = null) + { + return new MessageDeltaTextFilePathAnnotationObject( + index, + "file_path", + serializedAdditionalRawData: null, + filePath, + startIndex, + endIndex, + text); + } + + /// Initializes a new instance of . + /// The file ID for the annotation. + /// A new instance for mocking. + public static MessageDeltaTextFilePathAnnotation MessageDeltaTextFilePathAnnotation(string fileId = null) + { + return new MessageDeltaTextFilePathAnnotation(fileId, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The identifier of the run step, which can be referenced in API endpoints. + /// The object type, which is always `thread.run.step.delta`. + /// The delta containing the fields that have changed on the run step. + /// A new instance for mocking. + public static RunStepDeltaChunk RunStepDeltaChunk(string id = null, RunStepDeltaChunkObject @object = default, RunStepDelta delta = null) + { + return new RunStepDeltaChunk(id, @object, delta, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// + /// The details of the run step. + /// 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 . + /// + /// A new instance for mocking. + public static RunStepDelta RunStepDelta(RunStepDeltaDetail stepDetails = null) + { + return new RunStepDelta(stepDetails, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The message creation data. + /// A new instance for mocking. + public static RunStepDeltaMessageCreation RunStepDeltaMessageCreation(RunStepDeltaMessageCreationObject messageCreation = null) + { + return new RunStepDeltaMessageCreation("message_creation", serializedAdditionalRawData: null, messageCreation); + } + + /// Initializes a new instance of . + /// The ID of the newly-created message. + /// A new instance for mocking. + public static RunStepDeltaMessageCreationObject RunStepDeltaMessageCreationObject(string messageId = null) + { + return new RunStepDeltaMessageCreationObject(messageId, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// + /// The collection of tool calls for the tool call detail item. + /// 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 . + /// + /// A new instance for mocking. + public static RunStepDeltaToolCallObject RunStepDeltaToolCallObject(IEnumerable toolCalls = null) + { + toolCalls ??= new List(); + + return new RunStepDeltaToolCallObject("tool_calls", serializedAdditionalRawData: null, toolCalls?.ToList()); + } + + /// Initializes a new instance of . + /// The index of the tool call detail in the run step's tool_calls array. + /// The ID of the tool call, used when submitting outputs to the run. + /// The type of the tool call detail item in a streaming run step's details. + /// A new instance for mocking. + public static RunStepDeltaToolCall RunStepDeltaToolCall(int index = default, string id = null, string type = null) + { + return new UnknownRunStepDeltaToolCall(index, id, type, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The index of the tool call detail in the run step's tool_calls array. + /// The ID of the tool call, used when submitting outputs to the run. + /// The function data for the tool call. + /// A new instance for mocking. + public static RunStepDeltaFunctionToolCall RunStepDeltaFunctionToolCall(int index = default, string id = null, RunStepDeltaFunction function = null) + { + return new RunStepDeltaFunctionToolCall(index, id, "function", serializedAdditionalRawData: null, function); + } + + /// Initializes a new instance of . + /// The name of the function. + /// The arguments passed to the function as input. + /// The output of the function, null if outputs have not yet been submitted. + /// A new instance for mocking. + public static RunStepDeltaFunction RunStepDeltaFunction(string name = null, string arguments = null, string output = null) + { + return new RunStepDeltaFunction(name, arguments, output, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The index of the tool call detail in the run step's tool_calls array. + /// The ID of the tool call, used when submitting outputs to the run. + /// Reserved for future use. + /// A new instance for mocking. + public static RunStepDeltaFileSearchToolCall RunStepDeltaFileSearchToolCall(int index = default, string id = null, IReadOnlyDictionary fileSearch = null) + { + fileSearch ??= new Dictionary(); + + return new RunStepDeltaFileSearchToolCall(index, id, "file_search", serializedAdditionalRawData: null, fileSearch); + } + + /// Initializes a new instance of . + /// The index of the tool call detail in the run step's tool_calls array. + /// The ID of the tool call, used when submitting outputs to the run. + /// The Code Interpreter data for the tool call. + /// A new instance for mocking. + public static RunStepDeltaCodeInterpreterToolCall RunStepDeltaCodeInterpreterToolCall(int index = default, string id = null, RunStepDeltaCodeInterpreterDetailItemObject codeInterpreter = null) + { + return new RunStepDeltaCodeInterpreterToolCall(index, id, "code_interpreter", serializedAdditionalRawData: null, codeInterpreter); + } + + /// Initializes a new instance of . + /// The input into the Code Interpreter tool call. + /// + /// The outputs from the Code Interpreter tool call. Code Interpreter can output one or more + /// items, including text (`logs`) or images (`image`). Each of these are represented by a + /// different object type. + /// 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 . + /// + /// A new instance for mocking. + public static RunStepDeltaCodeInterpreterDetailItemObject RunStepDeltaCodeInterpreterDetailItemObject(string input = null, IEnumerable outputs = null) + { + outputs ??= new List(); + + return new RunStepDeltaCodeInterpreterDetailItemObject(input, outputs?.ToList(), serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The index of the output in the streaming run step tool call's Code Interpreter outputs array. + /// The type of the streaming run step tool call's Code Interpreter output. + /// A new instance for mocking. + public static RunStepDeltaCodeInterpreterOutput RunStepDeltaCodeInterpreterOutput(int index = default, string type = null) + { + return new UnknownRunStepDeltaCodeInterpreterOutput(index, type, serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// The index of the output in the streaming run step tool call's Code Interpreter outputs array. + /// The text output from the Code Interpreter tool call. + /// A new instance for mocking. + public static RunStepDeltaCodeInterpreterLogOutput RunStepDeltaCodeInterpreterLogOutput(int index = default, string logs = null) + { + return new RunStepDeltaCodeInterpreterLogOutput(index, "logs", serializedAdditionalRawData: null, logs); + } + + /// Initializes a new instance of . + /// The index of the output in the streaming run step tool call's Code Interpreter outputs array. + /// The image data for the Code Interpreter tool call output. + /// A new instance for mocking. + public static RunStepDeltaCodeInterpreterImageOutput RunStepDeltaCodeInterpreterImageOutput(int index = default, RunStepDeltaCodeInterpreterImageOutputObject image = null) + { + return new RunStepDeltaCodeInterpreterImageOutput(index, "image", serializedAdditionalRawData: null, image); + } + + /// Initializes a new instance of . + /// The file ID for the image. + /// A new instance for mocking. + public static RunStepDeltaCodeInterpreterImageOutputObject RunStepDeltaCodeInterpreterImageOutputObject(string fileId = null) + { + return new RunStepDeltaCodeInterpreterImageOutputObject(fileId, serializedAdditionalRawData: null); + } } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsNamedToolChoice.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsNamedToolChoice.Serialization.cs new file mode 100644 index 000000000000..4c078f9fe11d --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsNamedToolChoice.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.AI.OpenAI.Assistants +{ + public partial class AssistantsNamedToolChoice : 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(AssistantsNamedToolChoice)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type.ToString()); + if (Optional.IsDefined(Function)) + { + writer.WritePropertyName("function"u8); + writer.WriteObjectValue(Function, 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 + } + } + } + + AssistantsNamedToolChoice 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(AssistantsNamedToolChoice)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeAssistantsNamedToolChoice(document.RootElement, options); + } + + internal static AssistantsNamedToolChoice DeserializeAssistantsNamedToolChoice(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + AssistantsNamedToolChoiceType type = default; + FunctionName function = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("type"u8)) + { + type = new AssistantsNamedToolChoiceType(property.Value.GetString()); + continue; + } + if (property.NameEquals("function"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + function = FunctionName.DeserializeFunctionName(property.Value, options); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new AssistantsNamedToolChoice(type, function, 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(AssistantsNamedToolChoice)} does not support writing '{options.Format}' format."); + } + } + + AssistantsNamedToolChoice 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 DeserializeAssistantsNamedToolChoice(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(AssistantsNamedToolChoice)} 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 AssistantsNamedToolChoice FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeAssistantsNamedToolChoice(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsNamedToolChoice.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsNamedToolChoice.cs new file mode 100644 index 000000000000..b0da555fe4a1 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsNamedToolChoice.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.AI.OpenAI.Assistants +{ + /// Specifies a tool the model should use. Use to force the model to call a specific tool. + public partial class AssistantsNamedToolChoice + { + /// + /// 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 type of tool. If type is `function`, the function name must be set. + public AssistantsNamedToolChoice(AssistantsNamedToolChoiceType type) + { + Type = type; + } + + /// Initializes a new instance of . + /// the type of tool. If type is `function`, the function name must be set. + /// The name of the function to call. + /// Keeps track of any properties unknown to the library. + internal AssistantsNamedToolChoice(AssistantsNamedToolChoiceType type, FunctionName function, IDictionary serializedAdditionalRawData) + { + Type = type; + Function = function; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal AssistantsNamedToolChoice() + { + } + + /// the type of tool. If type is `function`, the function name must be set. + public AssistantsNamedToolChoiceType Type { get; set; } + /// The name of the function to call. + public FunctionName Function { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsNamedToolChoiceType.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsNamedToolChoiceType.cs new file mode 100644 index 000000000000..0d049b86843b --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantsNamedToolChoiceType.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.AI.OpenAI.Assistants +{ + /// Available tool types for assistants named tools. + public readonly partial struct AssistantsNamedToolChoiceType : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public AssistantsNamedToolChoiceType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string FunctionValue = "function"; + private const string CodeInterpreterValue = "code_interpreter"; + private const string FileSearchValue = "file_search"; + + /// Tool type `function`. + public static AssistantsNamedToolChoiceType Function { get; } = new AssistantsNamedToolChoiceType(FunctionValue); + /// Tool type `code_interpreter`. + public static AssistantsNamedToolChoiceType CodeInterpreter { get; } = new AssistantsNamedToolChoiceType(CodeInterpreterValue); + /// Tool type `file_search`. + public static AssistantsNamedToolChoiceType FileSearch { get; } = new AssistantsNamedToolChoiceType(FileSearchValue); + /// Determines if two values are the same. + public static bool operator ==(AssistantsNamedToolChoiceType left, AssistantsNamedToolChoiceType right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(AssistantsNamedToolChoiceType left, AssistantsNamedToolChoiceType right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator AssistantsNamedToolChoiceType(string value) => new AssistantsNamedToolChoiceType(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is AssistantsNamedToolChoiceType other && Equals(other); + /// + public bool Equals(AssistantsNamedToolChoiceType 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/CodeInterpreterToolResource.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CodeInterpreterToolResource.Serialization.cs new file mode 100644 index 000000000000..3274271efb84 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CodeInterpreterToolResource.Serialization.cs @@ -0,0 +1,152 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class CodeInterpreterToolResource : 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(CodeInterpreterToolResource)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("file_ids"u8); + writer.WriteStartArray(); + foreach (var item in FileIds) + { + 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 + } + } + } + + CodeInterpreterToolResource 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(CodeInterpreterToolResource)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeCodeInterpreterToolResource(document.RootElement, options); + } + + internal static CodeInterpreterToolResource DeserializeCodeInterpreterToolResource(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList fileIds = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("file_ids"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + fileIds = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new CodeInterpreterToolResource(fileIds, 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(CodeInterpreterToolResource)} does not support writing '{options.Format}' format."); + } + } + + CodeInterpreterToolResource 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 DeserializeCodeInterpreterToolResource(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(CodeInterpreterToolResource)} 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 CodeInterpreterToolResource FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeCodeInterpreterToolResource(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/CodeInterpreterToolResource.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CodeInterpreterToolResource.cs new file mode 100644 index 000000000000..a0a185a491bc --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CodeInterpreterToolResource.cs @@ -0,0 +1,85 @@ +// 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.AI.OpenAI.Assistants +{ + /// A set of resources that are used by the `code_interpreter` tool. + public partial class CodeInterpreterToolResource + { + /// + /// 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 . + /// + /// A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files + /// associated with the tool. + /// + /// is null. + internal CodeInterpreterToolResource(IEnumerable fileIds) + { + Argument.AssertNotNull(fileIds, nameof(fileIds)); + + FileIds = fileIds.ToList(); + } + + /// Initializes a new instance of . + /// + /// A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files + /// associated with the tool. + /// + /// Keeps track of any properties unknown to the library. + internal CodeInterpreterToolResource(IReadOnlyList fileIds, IDictionary serializedAdditionalRawData) + { + FileIds = fileIds; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal CodeInterpreterToolResource() + { + } + + /// + /// A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files + /// associated with the tool. + /// + public IReadOnlyList FileIds { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateAndRunThreadOptions.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateAndRunThreadOptions.Serialization.cs index 79d6c0e271fe..18ad0dc83511 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateAndRunThreadOptions.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateAndRunThreadOptions.Serialization.cs @@ -43,23 +43,164 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } if (Optional.IsDefined(OverrideModelName)) { - writer.WritePropertyName("model"u8); - writer.WriteStringValue(OverrideModelName); + if (OverrideModelName != null) + { + writer.WritePropertyName("model"u8); + writer.WriteStringValue(OverrideModelName); + } + else + { + writer.WriteNull("model"); + } } if (Optional.IsDefined(OverrideInstructions)) { - writer.WritePropertyName("instructions"u8); - writer.WriteStringValue(OverrideInstructions); + if (OverrideInstructions != null) + { + writer.WritePropertyName("instructions"u8); + writer.WriteStringValue(OverrideInstructions); + } + else + { + writer.WriteNull("instructions"); + } } if (Optional.IsCollectionDefined(OverrideTools)) { - writer.WritePropertyName("tools"u8); - writer.WriteStartArray(); - foreach (var item in OverrideTools) + if (OverrideTools != null) + { + writer.WritePropertyName("tools"u8); + writer.WriteStartArray(); + foreach (var item in OverrideTools) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + else + { + writer.WriteNull("tools"); + } + } + if (Optional.IsDefined(ParallelToolCalls)) + { + writer.WritePropertyName("parallel_tool_calls"u8); + writer.WriteBooleanValue(ParallelToolCalls.Value); + } + if (Optional.IsDefined(ToolResources)) + { + if (ToolResources != null) { - writer.WriteObjectValue(item, options); + writer.WritePropertyName("tool_resources"u8); + writer.WriteObjectValue(ToolResources, options); + } + else + { + writer.WriteNull("tool_resources"); + } + } + if (Optional.IsDefined(Stream)) + { + writer.WritePropertyName("stream"u8); + writer.WriteBooleanValue(Stream.Value); + } + if (Optional.IsDefined(Temperature)) + { + if (Temperature != null) + { + writer.WritePropertyName("temperature"u8); + writer.WriteNumberValue(Temperature.Value); + } + else + { + writer.WriteNull("temperature"); + } + } + if (Optional.IsDefined(TopP)) + { + if (TopP != null) + { + writer.WritePropertyName("top_p"u8); + writer.WriteNumberValue(TopP.Value); + } + else + { + writer.WriteNull("top_p"); + } + } + if (Optional.IsDefined(MaxPromptTokens)) + { + if (MaxPromptTokens != null) + { + writer.WritePropertyName("max_prompt_tokens"u8); + writer.WriteNumberValue(MaxPromptTokens.Value); + } + else + { + writer.WriteNull("max_prompt_tokens"); + } + } + if (Optional.IsDefined(MaxCompletionTokens)) + { + if (MaxCompletionTokens != null) + { + writer.WritePropertyName("max_completion_tokens"u8); + writer.WriteNumberValue(MaxCompletionTokens.Value); + } + else + { + writer.WriteNull("max_completion_tokens"); + } + } + if (Optional.IsDefined(TruncationStrategy)) + { + if (TruncationStrategy != null) + { + writer.WritePropertyName("truncation_strategy"u8); + writer.WriteObjectValue(TruncationStrategy, options); + } + else + { + writer.WriteNull("truncation_strategy"); + } + } + if (Optional.IsDefined(ToolChoice)) + { + if (ToolChoice != null) + { + writer.WritePropertyName("tool_choice"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(ToolChoice); +#else + using (JsonDocument document = JsonDocument.Parse(ToolChoice, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + else + { + writer.WriteNull("tool_choice"); + } + } + if (Optional.IsDefined(ResponseFormat)) + { + if (ResponseFormat != null) + { + writer.WritePropertyName("response_format"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(ResponseFormat); +#else + using (JsonDocument document = JsonDocument.Parse(ResponseFormat, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + else + { + writer.WriteNull("response_format"); } - writer.WriteEndArray(); } if (Optional.IsCollectionDefined(Metadata)) { @@ -121,6 +262,16 @@ internal static CreateAndRunThreadOptions DeserializeCreateAndRunThreadOptions(J string model = default; string instructions = default; IList tools = default; + bool? parallelToolCalls = default; + UpdateToolResourcesOptions toolResources = default; + bool? stream = default; + float? temperature = default; + float? topP = default; + int? maxPromptTokens = default; + int? maxCompletionTokens = default; + TruncationObject truncationStrategy = default; + BinaryData toolChoice = default; + BinaryData responseFormat = default; IDictionary metadata = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); @@ -142,11 +293,21 @@ internal static CreateAndRunThreadOptions DeserializeCreateAndRunThreadOptions(J } if (property.NameEquals("model"u8)) { + if (property.Value.ValueKind == JsonValueKind.Null) + { + model = null; + continue; + } model = property.Value.GetString(); continue; } if (property.NameEquals("instructions"u8)) { + if (property.Value.ValueKind == JsonValueKind.Null) + { + instructions = null; + continue; + } instructions = property.Value.GetString(); continue; } @@ -164,6 +325,104 @@ internal static CreateAndRunThreadOptions DeserializeCreateAndRunThreadOptions(J tools = array; continue; } + if (property.NameEquals("parallel_tool_calls"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + parallelToolCalls = property.Value.GetBoolean(); + continue; + } + if (property.NameEquals("tool_resources"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + toolResources = null; + continue; + } + toolResources = UpdateToolResourcesOptions.DeserializeUpdateToolResourcesOptions(property.Value, options); + continue; + } + if (property.NameEquals("stream"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + stream = property.Value.GetBoolean(); + continue; + } + if (property.NameEquals("temperature"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + temperature = null; + continue; + } + temperature = property.Value.GetSingle(); + continue; + } + if (property.NameEquals("top_p"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + topP = null; + continue; + } + topP = property.Value.GetSingle(); + continue; + } + if (property.NameEquals("max_prompt_tokens"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + maxPromptTokens = null; + continue; + } + maxPromptTokens = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("max_completion_tokens"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + maxCompletionTokens = null; + continue; + } + maxCompletionTokens = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("truncation_strategy"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + truncationStrategy = null; + continue; + } + truncationStrategy = TruncationObject.DeserializeTruncationObject(property.Value, options); + continue; + } + if (property.NameEquals("tool_choice"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + toolChoice = null; + continue; + } + toolChoice = BinaryData.FromString(property.Value.GetRawText()); + continue; + } + if (property.NameEquals("response_format"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + responseFormat = null; + continue; + } + responseFormat = BinaryData.FromString(property.Value.GetRawText()); + continue; + } if (property.NameEquals("metadata"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) @@ -190,6 +449,16 @@ internal static CreateAndRunThreadOptions DeserializeCreateAndRunThreadOptions(J model, instructions, tools ?? new ChangeTrackingList(), + parallelToolCalls, + toolResources, + stream, + temperature, + topP, + maxPromptTokens, + maxCompletionTokens, + truncationStrategy, + toolChoice, + responseFormat, metadata ?? new ChangeTrackingDictionary(), serializedAdditionalRawData); } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateAndRunThreadOptions.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateAndRunThreadOptions.cs index cf9c983195f7..16f117a439d8 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateAndRunThreadOptions.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateAndRunThreadOptions.cs @@ -59,23 +59,63 @@ public CreateAndRunThreadOptions(string assistantId) /// Initializes a new instance of . /// The ID of the assistant for which the thread should be created. - /// The details used to create the new thread. + /// The details used to create the new thread. If no thread is provided, an empty one will be created. /// The overridden model that the assistant should use to run the thread. /// The overridden system instructions the assistant should use to run the thread. /// /// The overridden list of enabled tools the assistant should use to run the thread. /// 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 . + /// The available derived classes include , and . /// + /// Whether to enable parallel function calling during tool use. + /// Override the tools the assistant can use for this run. This is useful for modifying the behavior on a per-run basis. + /// + /// If `true`, returns a stream of events that happen during the Run as server-sent events, + /// terminating when the Run enters a terminal state with a `data: [DONE]` message. + /// + /// + /// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output + /// more random, while lower values like 0.2 will make it more focused and deterministic. + /// + /// + /// An alternative to sampling with temperature, called nucleus sampling, where the model + /// considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens + /// comprising the top 10% probability mass are considered. + /// + /// We generally recommend altering this or temperature but not both. + /// + /// + /// The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only + /// the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, + /// the run will end with status `incomplete`. See `incomplete_details` for more info. + /// + /// + /// The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort to use only + /// the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of completion tokens + /// specified, the run will end with status `incomplete`. See `incomplete_details` for more info. + /// + /// The strategy to use for dropping messages as the context windows moves forward. + /// Controls whether or not and which tool is called by the model. + /// Specifies the format that the model must output. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// Keeps track of any properties unknown to the library. - internal CreateAndRunThreadOptions(string assistantId, AssistantThreadCreationOptions thread, string overrideModelName, string overrideInstructions, IList overrideTools, IDictionary metadata, IDictionary serializedAdditionalRawData) + internal CreateAndRunThreadOptions(string assistantId, AssistantThreadCreationOptions thread, string overrideModelName, string overrideInstructions, IList overrideTools, bool? parallelToolCalls, UpdateToolResourcesOptions toolResources, bool? stream, float? temperature, float? topP, int? maxPromptTokens, int? maxCompletionTokens, TruncationObject truncationStrategy, BinaryData toolChoice, BinaryData responseFormat, IDictionary metadata, IDictionary serializedAdditionalRawData) { AssistantId = assistantId; Thread = thread; OverrideModelName = overrideModelName; OverrideInstructions = overrideInstructions; OverrideTools = overrideTools; + ParallelToolCalls = parallelToolCalls; + ToolResources = toolResources; + Stream = stream; + Temperature = temperature; + TopP = topP; + MaxPromptTokens = maxPromptTokens; + MaxCompletionTokens = maxCompletionTokens; + TruncationStrategy = truncationStrategy; + ToolChoice = toolChoice; + ResponseFormat = responseFormat; Metadata = metadata; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -87,7 +127,7 @@ internal CreateAndRunThreadOptions() /// The ID of the assistant for which the thread should be created. public string AssistantId { get; } - /// The details used to create the new thread. + /// The details used to create the new thread. If no thread is provided, an empty one will be created. public AssistantThreadCreationOptions Thread { get; set; } /// The overridden model that the assistant should use to run the thread. public string OverrideModelName { get; set; } @@ -96,9 +136,135 @@ internal CreateAndRunThreadOptions() /// /// The overridden list of enabled tools the assistant should use to run the thread. /// 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 . + /// The available derived classes include , and . + /// + public IList OverrideTools { get; set; } + /// Whether to enable parallel function calling during tool use. + public bool? ParallelToolCalls { get; set; } + /// Override the tools the assistant can use for this run. This is useful for modifying the behavior on a per-run basis. + public UpdateToolResourcesOptions ToolResources { get; set; } + /// + /// If `true`, returns a stream of events that happen during the Run as server-sent events, + /// terminating when the Run enters a terminal state with a `data: [DONE]` message. + /// + public bool? Stream { get; set; } + /// + /// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output + /// more random, while lower values like 0.2 will make it more focused and deterministic. + /// + public float? Temperature { get; set; } + /// + /// An alternative to sampling with temperature, called nucleus sampling, where the model + /// considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens + /// comprising the top 10% probability mass are considered. + /// + /// We generally recommend altering this or temperature but not both. + /// + public float? TopP { get; set; } + /// + /// The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only + /// the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, + /// the run will end with status `incomplete`. See `incomplete_details` for more info. + /// + public int? MaxPromptTokens { get; set; } + /// + /// The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort to use only + /// the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of completion tokens + /// specified, the run will end with status `incomplete`. See `incomplete_details` for more info. + /// + public int? MaxCompletionTokens { get; set; } + /// The strategy to use for dropping messages as the context windows moves forward. + public TruncationObject TruncationStrategy { get; set; } + /// + /// Controls whether or not and which tool is called by the model. + /// + /// To assign an object to this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// + /// Supported types: + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// 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 ToolChoice { get; set; } + /// + /// Specifies the format that the model must output. + /// + /// To assign an object to this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// + /// Supported types: + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// 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 IList OverrideTools { get; } + public BinaryData ResponseFormat { get; set; } /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. public IDictionary Metadata { get; set; } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateCodeInterpreterToolResourceOptions.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateCodeInterpreterToolResourceOptions.Serialization.cs new file mode 100644 index 000000000000..06a1a7f3f6a6 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateCodeInterpreterToolResourceOptions.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.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + public partial class CreateCodeInterpreterToolResourceOptions : 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(CreateCodeInterpreterToolResourceOptions)} does not support writing '{format}' format."); + } + + if (Optional.IsCollectionDefined(FileIds)) + { + writer.WritePropertyName("file_ids"u8); + writer.WriteStartArray(); + foreach (var item in FileIds) + { + 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 + } + } + } + + CreateCodeInterpreterToolResourceOptions 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(CreateCodeInterpreterToolResourceOptions)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeCreateCodeInterpreterToolResourceOptions(document.RootElement, options); + } + + internal static CreateCodeInterpreterToolResourceOptions DeserializeCreateCodeInterpreterToolResourceOptions(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IList fileIds = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("file_ids"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + fileIds = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new CreateCodeInterpreterToolResourceOptions(fileIds ?? 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(CreateCodeInterpreterToolResourceOptions)} does not support writing '{options.Format}' format."); + } + } + + CreateCodeInterpreterToolResourceOptions 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 DeserializeCreateCodeInterpreterToolResourceOptions(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(CreateCodeInterpreterToolResourceOptions)} 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 CreateCodeInterpreterToolResourceOptions FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeCreateCodeInterpreterToolResourceOptions(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateAssistantFileRequest.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateCodeInterpreterToolResourceOptions.cs similarity index 64% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateAssistantFileRequest.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateCodeInterpreterToolResourceOptions.cs index 5a1af0cc4664..97be44a94098 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateAssistantFileRequest.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateCodeInterpreterToolResourceOptions.cs @@ -10,8 +10,8 @@ namespace Azure.AI.OpenAI.Assistants { - /// The CreateAssistantFileRequest. - internal partial class CreateAssistantFileRequest + /// A set of resources that will be used by the `code_interpreter` tool. Request object. + public partial class CreateCodeInterpreterToolResourceOptions { /// /// Keeps track of any properties unknown to the library. @@ -45,31 +45,22 @@ internal partial class CreateAssistantFileRequest /// private IDictionary _serializedAdditionalRawData; - /// Initializes a new instance of . - /// The ID of the previously uploaded file to attach. - /// is null. - internal CreateAssistantFileRequest(string fileId) + /// Initializes a new instance of . + public CreateCodeInterpreterToolResourceOptions() { - Argument.AssertNotNull(fileId, nameof(fileId)); - - FileId = fileId; + FileIds = new ChangeTrackingList(); } - /// Initializes a new instance of . - /// The ID of the previously uploaded file to attach. + /// Initializes a new instance of . + /// A list of file IDs made available to the `code_interpreter` tool. /// Keeps track of any properties unknown to the library. - internal CreateAssistantFileRequest(string fileId, IDictionary serializedAdditionalRawData) + internal CreateCodeInterpreterToolResourceOptions(IList fileIds, IDictionary serializedAdditionalRawData) { - FileId = fileId; + FileIds = fileIds; _serializedAdditionalRawData = serializedAdditionalRawData; } - /// Initializes a new instance of for deserialization. - internal CreateAssistantFileRequest() - { - } - - /// The ID of the previously uploaded file to attach. - public string FileId { get; } + /// A list of file IDs made available to the `code_interpreter` tool. + public IList FileIds { get; } } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadInitializationMessage.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateFileSearchToolResourceVectorStoreOptions.Serialization.cs similarity index 62% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadInitializationMessage.Serialization.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateFileSearchToolResourceVectorStoreOptions.Serialization.cs index 8bd17c2a1425..3805cd310f8f 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadInitializationMessage.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateFileSearchToolResourceVectorStoreOptions.Serialization.cs @@ -13,11 +13,11 @@ namespace Azure.AI.OpenAI.Assistants { - public partial class ThreadInitializationMessage : IUtf8JsonSerializable, IJsonModel + public partial class CreateFileSearchToolResourceVectorStoreOptions : IUtf8JsonSerializable, IJsonModel { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); - void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) { writer.WriteStartObject(); JsonModelWriteCore(writer, options); @@ -28,26 +28,21 @@ void IJsonModel.Write(Utf8JsonWriter writer, ModelR /// 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; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(ThreadInitializationMessage)} does not support writing '{format}' format."); + throw new FormatException($"The model {nameof(CreateFileSearchToolResourceVectorStoreOptions)} does not support writing '{format}' format."); } - writer.WritePropertyName("role"u8); - writer.WriteStringValue(Role.ToString()); - writer.WritePropertyName("content"u8); - writer.WriteStringValue(Content); - if (Optional.IsCollectionDefined(FileIds)) + writer.WritePropertyName("file_ids"u8); + writer.WriteStartArray(); + foreach (var item in FileIds) { - writer.WritePropertyName("file_ids"u8); - writer.WriteStartArray(); - foreach (var item in FileIds) - { - writer.WriteStringValue(item); - } - writer.WriteEndArray(); + writer.WriteStringValue(item); } + writer.WriteEndArray(); + writer.WritePropertyName("chunking_strategy"u8); + writer.WriteObjectValue(ChunkingStrategy, options); if (Optional.IsCollectionDefined(Metadata)) { if (Metadata != null) @@ -83,19 +78,19 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } } - ThreadInitializationMessage IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + CreateFileSearchToolResourceVectorStoreOptions IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(ThreadInitializationMessage)} does not support reading '{format}' format."); + throw new FormatException($"The model {nameof(CreateFileSearchToolResourceVectorStoreOptions)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return DeserializeThreadInitializationMessage(document.RootElement, options); + return DeserializeCreateFileSearchToolResourceVectorStoreOptions(document.RootElement, options); } - internal static ThreadInitializationMessage DeserializeThreadInitializationMessage(JsonElement element, ModelReaderWriterOptions options = null) + internal static CreateFileSearchToolResourceVectorStoreOptions DeserializeCreateFileSearchToolResourceVectorStoreOptions(JsonElement element, ModelReaderWriterOptions options = null) { options ??= ModelSerializationExtensions.WireOptions; @@ -103,30 +98,15 @@ internal static ThreadInitializationMessage DeserializeThreadInitializationMessa { return null; } - MessageRole role = default; - string content = default; IList fileIds = default; + VectorStoreChunkingStrategyRequest chunkingStrategy = default; IDictionary metadata = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); foreach (var property in element.EnumerateObject()) { - if (property.NameEquals("role"u8)) - { - role = new MessageRole(property.Value.GetString()); - continue; - } - if (property.NameEquals("content"u8)) - { - content = property.Value.GetString(); - continue; - } if (property.NameEquals("file_ids"u8)) { - if (property.Value.ValueKind == JsonValueKind.Null) - { - continue; - } List array = new List(); foreach (var item in property.Value.EnumerateArray()) { @@ -135,6 +115,11 @@ internal static ThreadInitializationMessage DeserializeThreadInitializationMessa fileIds = array; continue; } + if (property.NameEquals("chunking_strategy"u8)) + { + chunkingStrategy = VectorStoreChunkingStrategyRequest.DeserializeVectorStoreChunkingStrategyRequest(property.Value, options); + continue; + } if (property.NameEquals("metadata"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) @@ -155,46 +140,46 @@ internal static ThreadInitializationMessage DeserializeThreadInitializationMessa } } serializedAdditionalRawData = rawDataDictionary; - return new ThreadInitializationMessage(role, content, fileIds ?? new ChangeTrackingList(), metadata ?? new ChangeTrackingDictionary(), serializedAdditionalRawData); + return new CreateFileSearchToolResourceVectorStoreOptions(fileIds, chunkingStrategy, metadata ?? new ChangeTrackingDictionary(), serializedAdditionalRawData); } - BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + 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(ThreadInitializationMessage)} does not support writing '{options.Format}' format."); + throw new FormatException($"The model {nameof(CreateFileSearchToolResourceVectorStoreOptions)} does not support writing '{options.Format}' format."); } } - ThreadInitializationMessage IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + CreateFileSearchToolResourceVectorStoreOptions IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; switch (format) { case "J": { using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeThreadInitializationMessage(document.RootElement, options); + return DeserializeCreateFileSearchToolResourceVectorStoreOptions(document.RootElement, options); } default: - throw new FormatException($"The model {nameof(ThreadInitializationMessage)} does not support reading '{options.Format}' format."); + throw new FormatException($"The model {nameof(CreateFileSearchToolResourceVectorStoreOptions)} does not support reading '{options.Format}' format."); } } - string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; /// Deserializes the model from a raw response. /// The response to deserialize the model from. - internal static ThreadInitializationMessage FromResponse(Response response) + internal static CreateFileSearchToolResourceVectorStoreOptions FromResponse(Response response) { using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeThreadInitializationMessage(document.RootElement); + return DeserializeCreateFileSearchToolResourceVectorStoreOptions(document.RootElement); } /// Convert into a . diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateFileSearchToolResourceVectorStoreOptions.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateFileSearchToolResourceVectorStoreOptions.cs new file mode 100644 index 000000000000..cac5e291a8a8 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateFileSearchToolResourceVectorStoreOptions.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; +using System.Linq; + +namespace Azure.AI.OpenAI.Assistants +{ + /// File IDs associated to the vector store to be passed to the helper. + public partial class CreateFileSearchToolResourceVectorStoreOptions + { + /// + /// 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 . + /// A list of file IDs to add to the vector store. There can be a maximum of 10000 files in a vector store. + /// + /// The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy. + /// 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 . + /// + /// or is null. + public CreateFileSearchToolResourceVectorStoreOptions(IEnumerable fileIds, VectorStoreChunkingStrategyRequest chunkingStrategy) + { + Argument.AssertNotNull(fileIds, nameof(fileIds)); + Argument.AssertNotNull(chunkingStrategy, nameof(chunkingStrategy)); + + FileIds = fileIds.ToList(); + ChunkingStrategy = chunkingStrategy; + Metadata = new ChangeTrackingDictionary(); + } + + /// Initializes a new instance of . + /// A list of file IDs to add to the vector store. There can be a maximum of 10000 files in a vector store. + /// + /// The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy. + /// 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 . + /// + /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. + /// Keeps track of any properties unknown to the library. + internal CreateFileSearchToolResourceVectorStoreOptions(IList fileIds, VectorStoreChunkingStrategyRequest chunkingStrategy, IDictionary metadata, IDictionary serializedAdditionalRawData) + { + FileIds = fileIds; + ChunkingStrategy = chunkingStrategy; + Metadata = metadata; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal CreateFileSearchToolResourceVectorStoreOptions() + { + } + + /// A list of file IDs to add to the vector store. There can be a maximum of 10000 files in a vector store. + public IList FileIds { get; } + /// + /// The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy. + /// 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 VectorStoreChunkingStrategyRequest ChunkingStrategy { get; } + /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. + public IDictionary Metadata { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateRunOptions.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateRunOptions.Serialization.cs index c5d2f1cafaac..4b237e4eb15f 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateRunOptions.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateRunOptions.Serialization.cs @@ -72,6 +72,23 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteNull("additional_instructions"); } } + if (Optional.IsCollectionDefined(AdditionalMessages)) + { + if (AdditionalMessages != null) + { + writer.WritePropertyName("additional_messages"u8); + writer.WriteStartArray(); + foreach (var item in AdditionalMessages) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + else + { + writer.WriteNull("additional_messages"); + } + } if (Optional.IsCollectionDefined(OverrideTools)) { if (OverrideTools != null) @@ -89,6 +106,114 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteNull("tools"); } } + if (Optional.IsDefined(ParallelToolCalls)) + { + writer.WritePropertyName("parallel_tool_calls"u8); + writer.WriteBooleanValue(ParallelToolCalls.Value); + } + if (Optional.IsDefined(Stream)) + { + writer.WritePropertyName("stream"u8); + writer.WriteBooleanValue(Stream.Value); + } + if (Optional.IsDefined(Temperature)) + { + if (Temperature != null) + { + writer.WritePropertyName("temperature"u8); + writer.WriteNumberValue(Temperature.Value); + } + else + { + writer.WriteNull("temperature"); + } + } + if (Optional.IsDefined(TopP)) + { + if (TopP != null) + { + writer.WritePropertyName("top_p"u8); + writer.WriteNumberValue(TopP.Value); + } + else + { + writer.WriteNull("top_p"); + } + } + if (Optional.IsDefined(MaxPromptTokens)) + { + if (MaxPromptTokens != null) + { + writer.WritePropertyName("max_prompt_tokens"u8); + writer.WriteNumberValue(MaxPromptTokens.Value); + } + else + { + writer.WriteNull("max_prompt_tokens"); + } + } + if (Optional.IsDefined(MaxCompletionTokens)) + { + if (MaxCompletionTokens != null) + { + writer.WritePropertyName("max_completion_tokens"u8); + writer.WriteNumberValue(MaxCompletionTokens.Value); + } + else + { + writer.WriteNull("max_completion_tokens"); + } + } + if (Optional.IsDefined(TruncationStrategy)) + { + if (TruncationStrategy != null) + { + writer.WritePropertyName("truncation_strategy"u8); + writer.WriteObjectValue(TruncationStrategy, options); + } + else + { + writer.WriteNull("truncation_strategy"); + } + } + if (Optional.IsDefined(ToolChoice)) + { + if (ToolChoice != null) + { + writer.WritePropertyName("tool_choice"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(ToolChoice); +#else + using (JsonDocument document = JsonDocument.Parse(ToolChoice, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + else + { + writer.WriteNull("tool_choice"); + } + } + if (Optional.IsDefined(ResponseFormat)) + { + if (ResponseFormat != null) + { + writer.WritePropertyName("response_format"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(ResponseFormat); +#else + using (JsonDocument document = JsonDocument.Parse(ResponseFormat, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + else + { + writer.WriteNull("response_format"); + } + } if (Optional.IsCollectionDefined(Metadata)) { if (Metadata != null) @@ -148,7 +273,17 @@ internal static CreateRunOptions DeserializeCreateRunOptions(JsonElement element string model = default; string instructions = default; string additionalInstructions = default; + IList additionalMessages = default; IList tools = default; + bool? parallelToolCalls = default; + bool? stream = default; + float? temperature = default; + float? topP = default; + int? maxPromptTokens = default; + int? maxCompletionTokens = default; + TruncationObject truncationStrategy = default; + BinaryData toolChoice = default; + BinaryData responseFormat = default; IDictionary metadata = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); @@ -189,6 +324,20 @@ internal static CreateRunOptions DeserializeCreateRunOptions(JsonElement element additionalInstructions = property.Value.GetString(); continue; } + if (property.NameEquals("additional_messages"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(ThreadMessage.DeserializeThreadMessage(item, options)); + } + additionalMessages = array; + continue; + } if (property.NameEquals("tools"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) @@ -203,6 +352,94 @@ internal static CreateRunOptions DeserializeCreateRunOptions(JsonElement element tools = array; continue; } + if (property.NameEquals("parallel_tool_calls"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + parallelToolCalls = property.Value.GetBoolean(); + continue; + } + if (property.NameEquals("stream"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + stream = property.Value.GetBoolean(); + continue; + } + if (property.NameEquals("temperature"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + temperature = null; + continue; + } + temperature = property.Value.GetSingle(); + continue; + } + if (property.NameEquals("top_p"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + topP = null; + continue; + } + topP = property.Value.GetSingle(); + continue; + } + if (property.NameEquals("max_prompt_tokens"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + maxPromptTokens = null; + continue; + } + maxPromptTokens = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("max_completion_tokens"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + maxCompletionTokens = null; + continue; + } + maxCompletionTokens = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("truncation_strategy"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + truncationStrategy = null; + continue; + } + truncationStrategy = TruncationObject.DeserializeTruncationObject(property.Value, options); + continue; + } + if (property.NameEquals("tool_choice"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + toolChoice = null; + continue; + } + toolChoice = BinaryData.FromString(property.Value.GetRawText()); + continue; + } + if (property.NameEquals("response_format"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + responseFormat = null; + continue; + } + responseFormat = BinaryData.FromString(property.Value.GetRawText()); + continue; + } if (property.NameEquals("metadata"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) @@ -228,7 +465,17 @@ internal static CreateRunOptions DeserializeCreateRunOptions(JsonElement element model, instructions, additionalInstructions, + additionalMessages ?? new ChangeTrackingList(), tools ?? new ChangeTrackingList(), + parallelToolCalls, + stream, + temperature, + topP, + maxPromptTokens, + maxCompletionTokens, + truncationStrategy, + toolChoice, + responseFormat, metadata ?? new ChangeTrackingDictionary(), serializedAdditionalRawData); } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateRunOptions.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateRunOptions.cs index 1c307b753523..b8a9e8507c50 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateRunOptions.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateRunOptions.cs @@ -53,6 +53,7 @@ public CreateRunOptions(string assistantId) Argument.AssertNotNull(assistantId, nameof(assistantId)); AssistantId = assistantId; + AdditionalMessages = new ChangeTrackingList(); OverrideTools = new ChangeTrackingList(); Metadata = new ChangeTrackingDictionary(); } @@ -65,20 +66,60 @@ public CreateRunOptions(string assistantId) /// Additional instructions to append at the end of the instructions for the run. This is useful for modifying the behavior /// on a per-run basis without overriding other instructions. /// + /// Adds additional messages to the thread before creating the run. /// /// The overridden list of enabled tools that the assistant should use to run the thread. /// 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 . + /// The available derived classes include , and . /// + /// Whether to enable parallel function calling during tool use. + /// + /// If `true`, returns a stream of events that happen during the Run as server-sent events, + /// terminating when the Run enters a terminal state with a `data: [DONE]` message. + /// + /// + /// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output + /// more random, while lower values like 0.2 will make it more focused and deterministic. + /// + /// + /// An alternative to sampling with temperature, called nucleus sampling, where the model + /// considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens + /// comprising the top 10% probability mass are considered. + /// + /// We generally recommend altering this or temperature but not both. + /// + /// + /// The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only + /// the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, + /// the run will end with status `incomplete`. See `incomplete_details` for more info. + /// + /// + /// The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort + /// to use only the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of + /// completion tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info. + /// + /// The strategy to use for dropping messages as the context windows moves forward. + /// Controls whether or not and which tool is called by the model. + /// Specifies the format that the model must output. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// Keeps track of any properties unknown to the library. - internal CreateRunOptions(string assistantId, string overrideModelName, string overrideInstructions, string additionalInstructions, IList overrideTools, IDictionary metadata, IDictionary serializedAdditionalRawData) + internal CreateRunOptions(string assistantId, string overrideModelName, string overrideInstructions, string additionalInstructions, IList additionalMessages, IList overrideTools, bool? parallelToolCalls, bool? stream, float? temperature, float? topP, int? maxPromptTokens, int? maxCompletionTokens, TruncationObject truncationStrategy, BinaryData toolChoice, BinaryData responseFormat, IDictionary metadata, IDictionary serializedAdditionalRawData) { AssistantId = assistantId; OverrideModelName = overrideModelName; OverrideInstructions = overrideInstructions; AdditionalInstructions = additionalInstructions; + AdditionalMessages = additionalMessages; OverrideTools = overrideTools; + ParallelToolCalls = parallelToolCalls; + Stream = stream; + Temperature = temperature; + TopP = topP; + MaxPromptTokens = maxPromptTokens; + MaxCompletionTokens = maxCompletionTokens; + TruncationStrategy = truncationStrategy; + ToolChoice = toolChoice; + ResponseFormat = responseFormat; Metadata = metadata; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -99,12 +140,138 @@ internal CreateRunOptions() /// on a per-run basis without overriding other instructions. /// public string AdditionalInstructions { get; set; } + /// Adds additional messages to the thread before creating the run. + public IList AdditionalMessages { get; set; } /// /// The overridden list of enabled tools that the assistant should use to run the thread. /// 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 . + /// The available derived classes include , and . /// public IList OverrideTools { get; set; } + /// Whether to enable parallel function calling during tool use. + public bool? ParallelToolCalls { get; set; } + /// + /// If `true`, returns a stream of events that happen during the Run as server-sent events, + /// terminating when the Run enters a terminal state with a `data: [DONE]` message. + /// + public bool? Stream { get; set; } + /// + /// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output + /// more random, while lower values like 0.2 will make it more focused and deterministic. + /// + public float? Temperature { get; set; } + /// + /// An alternative to sampling with temperature, called nucleus sampling, where the model + /// considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens + /// comprising the top 10% probability mass are considered. + /// + /// We generally recommend altering this or temperature but not both. + /// + public float? TopP { get; set; } + /// + /// The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only + /// the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, + /// the run will end with status `incomplete`. See `incomplete_details` for more info. + /// + public int? MaxPromptTokens { get; set; } + /// + /// The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort + /// to use only the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of + /// completion tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info. + /// + public int? MaxCompletionTokens { get; set; } + /// The strategy to use for dropping messages as the context windows moves forward. + public TruncationObject TruncationStrategy { get; set; } + /// + /// Controls whether or not and which tool is called by the model. + /// + /// To assign an object to this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// + /// Supported types: + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// 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 ToolChoice { get; set; } + /// + /// Specifies the format that the model must output. + /// + /// To assign an object to this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// + /// Supported types: + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// 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 ResponseFormat { get; set; } /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. public IDictionary Metadata { get; set; } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateToolResourcesOptions.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateToolResourcesOptions.Serialization.cs new file mode 100644 index 000000000000..cad4b4ba65c7 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateToolResourcesOptions.Serialization.cs @@ -0,0 +1,171 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class CreateToolResourcesOptions : 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(CreateToolResourcesOptions)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(CodeInterpreter)) + { + writer.WritePropertyName("code_interpreter"u8); + writer.WriteObjectValue(CodeInterpreter, options); + } + if (Optional.IsDefined(FileSearch)) + { + writer.WritePropertyName("file_search"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(FileSearch); +#else + using (JsonDocument document = JsonDocument.Parse(FileSearch, 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 + } + } + } + + CreateToolResourcesOptions 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(CreateToolResourcesOptions)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeCreateToolResourcesOptions(document.RootElement, options); + } + + internal static CreateToolResourcesOptions DeserializeCreateToolResourcesOptions(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + CreateCodeInterpreterToolResourceOptions codeInterpreter = default; + BinaryData fileSearch = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("code_interpreter"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + codeInterpreter = CreateCodeInterpreterToolResourceOptions.DeserializeCreateCodeInterpreterToolResourceOptions(property.Value, options); + continue; + } + if (property.NameEquals("file_search"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + fileSearch = BinaryData.FromString(property.Value.GetRawText()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new CreateToolResourcesOptions(codeInterpreter, fileSearch, 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(CreateToolResourcesOptions)} does not support writing '{options.Format}' format."); + } + } + + CreateToolResourcesOptions 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 DeserializeCreateToolResourcesOptions(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(CreateToolResourcesOptions)} 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 CreateToolResourcesOptions FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeCreateToolResourcesOptions(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateToolResourcesOptions.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateToolResourcesOptions.cs new file mode 100644 index 000000000000..796bdccc21f0 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateToolResourcesOptions.cs @@ -0,0 +1,119 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// + /// Request object. A set of resources that are used by the assistant's tools. The resources are specific to the + /// type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` + /// tool requires a list of vector store IDs. + /// + public partial class CreateToolResourcesOptions + { + /// + /// 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 CreateToolResourcesOptions() + { + } + + /// Initializes a new instance of . + /// + /// A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files + /// associated with the tool. + /// + /// A list of vector stores or their IDs made available to the `file_search` tool. + /// Keeps track of any properties unknown to the library. + internal CreateToolResourcesOptions(CreateCodeInterpreterToolResourceOptions codeInterpreter, BinaryData fileSearch, IDictionary serializedAdditionalRawData) + { + CodeInterpreter = codeInterpreter; + FileSearch = fileSearch; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// + /// A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files + /// associated with the tool. + /// + public CreateCodeInterpreterToolResourceOptions CodeInterpreter { get; set; } + /// + /// A list of vector stores or their IDs made available to the `file_search` tool. + /// + /// To assign an object to this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// + /// Supported types: + /// + /// + /// where T is of type + /// + /// + /// where T is of type + /// + /// + /// + /// 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 FileSearch { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateVectorStoreFileBatchRequest.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateVectorStoreFileBatchRequest.Serialization.cs new file mode 100644 index 000000000000..f29ad1fbd34f --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateVectorStoreFileBatchRequest.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.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + internal partial class CreateVectorStoreFileBatchRequest : 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(CreateVectorStoreFileBatchRequest)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("file_ids"u8); + writer.WriteStartArray(); + foreach (var item in FileIds) + { + writer.WriteStringValue(item); + } + writer.WriteEndArray(); + if (Optional.IsDefined(ChunkingStrategy)) + { + writer.WritePropertyName("chunking_strategy"u8); + writer.WriteObjectValue(ChunkingStrategy, 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 + } + } + } + + CreateVectorStoreFileBatchRequest 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(CreateVectorStoreFileBatchRequest)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeCreateVectorStoreFileBatchRequest(document.RootElement, options); + } + + internal static CreateVectorStoreFileBatchRequest DeserializeCreateVectorStoreFileBatchRequest(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList fileIds = default; + VectorStoreChunkingStrategyRequest chunkingStrategy = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("file_ids"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + fileIds = array; + continue; + } + if (property.NameEquals("chunking_strategy"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + chunkingStrategy = VectorStoreChunkingStrategyRequest.DeserializeVectorStoreChunkingStrategyRequest(property.Value, options); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new CreateVectorStoreFileBatchRequest(fileIds, chunkingStrategy, 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(CreateVectorStoreFileBatchRequest)} does not support writing '{options.Format}' format."); + } + } + + CreateVectorStoreFileBatchRequest 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 DeserializeCreateVectorStoreFileBatchRequest(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(CreateVectorStoreFileBatchRequest)} 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 CreateVectorStoreFileBatchRequest FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeCreateVectorStoreFileBatchRequest(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateVectorStoreFileBatchRequest.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateVectorStoreFileBatchRequest.cs new file mode 100644 index 000000000000..ae91f3b2fed8 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateVectorStoreFileBatchRequest.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; +using System.Linq; + +namespace Azure.AI.OpenAI.Assistants +{ + /// The CreateVectorStoreFileBatchRequest. + internal partial class CreateVectorStoreFileBatchRequest + { + /// + /// 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 . + /// A list of File IDs that the vector store should use. Useful for tools like `file_search` that can access files. + /// is null. + internal CreateVectorStoreFileBatchRequest(IEnumerable fileIds) + { + Argument.AssertNotNull(fileIds, nameof(fileIds)); + + FileIds = fileIds.ToList(); + } + + /// Initializes a new instance of . + /// A list of File IDs that the vector store should use. Useful for tools like `file_search` that can access files. + /// + /// The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. + /// 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 . + /// + /// Keeps track of any properties unknown to the library. + internal CreateVectorStoreFileBatchRequest(IReadOnlyList fileIds, VectorStoreChunkingStrategyRequest chunkingStrategy, IDictionary serializedAdditionalRawData) + { + FileIds = fileIds; + ChunkingStrategy = chunkingStrategy; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal CreateVectorStoreFileBatchRequest() + { + } + + /// A list of File IDs that the vector store should use. Useful for tools like `file_search` that can access files. + public IReadOnlyList FileIds { get; } + /// + /// The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. + /// 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 VectorStoreChunkingStrategyRequest ChunkingStrategy { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateVectorStoreFileRequest.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateVectorStoreFileRequest.Serialization.cs new file mode 100644 index 000000000000..830d3de04dc3 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateVectorStoreFileRequest.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.AI.OpenAI.Assistants +{ + internal partial class CreateVectorStoreFileRequest : 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(CreateVectorStoreFileRequest)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("file_id"u8); + writer.WriteStringValue(FileId); + if (Optional.IsDefined(ChunkingStrategy)) + { + writer.WritePropertyName("chunking_strategy"u8); + writer.WriteObjectValue(ChunkingStrategy, 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 + } + } + } + + CreateVectorStoreFileRequest 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(CreateVectorStoreFileRequest)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeCreateVectorStoreFileRequest(document.RootElement, options); + } + + internal static CreateVectorStoreFileRequest DeserializeCreateVectorStoreFileRequest(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string fileId = default; + VectorStoreChunkingStrategyRequest chunkingStrategy = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("file_id"u8)) + { + fileId = property.Value.GetString(); + continue; + } + if (property.NameEquals("chunking_strategy"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + chunkingStrategy = VectorStoreChunkingStrategyRequest.DeserializeVectorStoreChunkingStrategyRequest(property.Value, options); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new CreateVectorStoreFileRequest(fileId, chunkingStrategy, 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(CreateVectorStoreFileRequest)} does not support writing '{options.Format}' format."); + } + } + + CreateVectorStoreFileRequest 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 DeserializeCreateVectorStoreFileRequest(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(CreateVectorStoreFileRequest)} 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 CreateVectorStoreFileRequest FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeCreateVectorStoreFileRequest(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateVectorStoreFileRequest.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateVectorStoreFileRequest.cs new file mode 100644 index 000000000000..fdda0a8891d1 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateVectorStoreFileRequest.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 Azure.AI.OpenAI.Assistants +{ + /// The CreateVectorStoreFileRequest. + internal partial class CreateVectorStoreFileRequest + { + /// + /// 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 . + /// A File ID that the vector store should use. Useful for tools like `file_search` that can access files. + /// is null. + internal CreateVectorStoreFileRequest(string fileId) + { + Argument.AssertNotNull(fileId, nameof(fileId)); + + FileId = fileId; + } + + /// Initializes a new instance of . + /// A File ID that the vector store should use. Useful for tools like `file_search` that can access files. + /// + /// The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. + /// 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 . + /// + /// Keeps track of any properties unknown to the library. + internal CreateVectorStoreFileRequest(string fileId, VectorStoreChunkingStrategyRequest chunkingStrategy, IDictionary serializedAdditionalRawData) + { + FileId = fileId; + ChunkingStrategy = chunkingStrategy; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal CreateVectorStoreFileRequest() + { + } + + /// A File ID that the vector store should use. Useful for tools like `file_search` that can access files. + public string FileId { get; } + /// + /// The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. + /// 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 VectorStoreChunkingStrategyRequest ChunkingStrategy { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/DoneEvent.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/DoneEvent.cs new file mode 100644 index 000000000000..d59d8966c668 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/DoneEvent.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.AI.OpenAI.Assistants +{ + /// Terminal event indicating the successful end of a stream. + public readonly partial struct DoneEvent : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public DoneEvent(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string DoneValue = "done"; + + /// Event sent when the stream is done. + public static DoneEvent Done { get; } = new DoneEvent(DoneValue); + /// Determines if two values are the same. + public static bool operator ==(DoneEvent left, DoneEvent right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(DoneEvent left, DoneEvent right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator DoneEvent(string value) => new DoneEvent(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is DoneEvent other && Equals(other); + /// + public bool Equals(DoneEvent 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/ErrorEvent.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ErrorEvent.cs new file mode 100644 index 000000000000..3a26ca078a2f --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ErrorEvent.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.AI.OpenAI.Assistants +{ + /// Terminal event indicating a server side error while streaming. + public readonly partial struct ErrorEvent : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public ErrorEvent(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string ErrorValue = "error"; + + /// Event sent when an error occurs, such as an internal server error or a timeout. + public static ErrorEvent Error { get; } = new ErrorEvent(ErrorValue); + /// Determines if two values are the same. + public static bool operator ==(ErrorEvent left, ErrorEvent right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(ErrorEvent left, ErrorEvent right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator ErrorEvent(string value) => new ErrorEvent(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ErrorEvent other && Equals(other); + /// + public bool Equals(ErrorEvent 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResult.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResult.Serialization.cs new file mode 100644 index 000000000000..c2034d6ebcad --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResult.Serialization.cs @@ -0,0 +1,183 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class FileSearchToolCallResult : 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(FileSearchToolCallResult)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("file_id"u8); + writer.WriteStringValue(FileId); + writer.WritePropertyName("file_name"u8); + writer.WriteStringValue(FileName); + writer.WritePropertyName("score"u8); + writer.WriteNumberValue(Score); + if (Optional.IsCollectionDefined(Content)) + { + writer.WritePropertyName("content"u8); + writer.WriteStartArray(); + foreach (var item in Content) + { + 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 + } + } + } + + FileSearchToolCallResult 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(FileSearchToolCallResult)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeFileSearchToolCallResult(document.RootElement, options); + } + + internal static FileSearchToolCallResult DeserializeFileSearchToolCallResult(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string fileId = default; + string fileName = default; + double score = default; + IReadOnlyList content = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("file_id"u8)) + { + fileId = property.Value.GetString(); + continue; + } + if (property.NameEquals("file_name"u8)) + { + fileName = property.Value.GetString(); + continue; + } + if (property.NameEquals("score"u8)) + { + score = property.Value.GetDouble(); + continue; + } + if (property.NameEquals("content"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(FileSearchToolCallResultContentItem.DeserializeFileSearchToolCallResultContentItem(item, options)); + } + content = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new FileSearchToolCallResult(fileId, fileName, score, content ?? 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(FileSearchToolCallResult)} does not support writing '{options.Format}' format."); + } + } + + FileSearchToolCallResult 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 DeserializeFileSearchToolCallResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(FileSearchToolCallResult)} 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 FileSearchToolCallResult FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeFileSearchToolCallResult(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResult.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResult.cs new file mode 100644 index 000000000000..7d6159b1839f --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResult.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 Azure.AI.OpenAI.Assistants +{ + /// File search tool call result. + public partial class FileSearchToolCallResult + { + /// + /// 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 ID of the file that result was found in. + /// The name of the file that result was found in. + /// The score of the result. All values must be a floating point number between 0 and 1. + /// or is null. + internal FileSearchToolCallResult(string fileId, string fileName, double score) + { + Argument.AssertNotNull(fileId, nameof(fileId)); + Argument.AssertNotNull(fileName, nameof(fileName)); + + FileId = fileId; + FileName = fileName; + Score = score; + Content = new ChangeTrackingList(); + } + + /// Initializes a new instance of . + /// The ID of the file that result was found in. + /// The name of the file that result was found in. + /// The score of the result. All values must be a floating point number between 0 and 1. + /// The content of the result that was found. The content is only included if requested via the include query parameter. + /// Keeps track of any properties unknown to the library. + internal FileSearchToolCallResult(string fileId, string fileName, double score, IReadOnlyList content, IDictionary serializedAdditionalRawData) + { + FileId = fileId; + FileName = fileName; + Score = score; + Content = content; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal FileSearchToolCallResult() + { + } + + /// The ID of the file that result was found in. + public string FileId { get; } + /// The name of the file that result was found in. + public string FileName { get; } + /// The score of the result. All values must be a floating point number between 0 and 1. + public double Score { get; } + /// The content of the result that was found. The content is only included if requested via the include query parameter. + public IReadOnlyList Content { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResultContentItem.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResultContentItem.Serialization.cs new file mode 100644 index 000000000000..0e05d7c1e915 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResultContentItem.Serialization.cs @@ -0,0 +1,160 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class FileSearchToolCallResultContentItem : 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(FileSearchToolCallResultContentItem)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(Type)) + { + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type.Value.ToString()); + } + if (Optional.IsDefined(Text)) + { + writer.WritePropertyName("text"u8); + writer.WriteStringValue(Text); + } + 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 + } + } + } + + FileSearchToolCallResultContentItem 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(FileSearchToolCallResultContentItem)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeFileSearchToolCallResultContentItem(document.RootElement, options); + } + + internal static FileSearchToolCallResultContentItem DeserializeFileSearchToolCallResultContentItem(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + FileSearchToolCallResultContentItemType? type = default; + string text = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("type"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + type = new FileSearchToolCallResultContentItemType(property.Value.GetString()); + continue; + } + if (property.NameEquals("text"u8)) + { + text = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new FileSearchToolCallResultContentItem(type, text, 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(FileSearchToolCallResultContentItem)} does not support writing '{options.Format}' format."); + } + } + + FileSearchToolCallResultContentItem 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 DeserializeFileSearchToolCallResultContentItem(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(FileSearchToolCallResultContentItem)} 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 FileSearchToolCallResultContentItem FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeFileSearchToolCallResultContentItem(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResultContentItem.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResultContentItem.cs new file mode 100644 index 000000000000..ea20181aa787 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResultContentItem.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.AI.OpenAI.Assistants +{ + /// Content item in a file search result. + public partial class FileSearchToolCallResultContentItem + { + /// + /// 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 FileSearchToolCallResultContentItem() + { + } + + /// Initializes a new instance of . + /// The type of the content. + /// The text content of the file. + /// Keeps track of any properties unknown to the library. + internal FileSearchToolCallResultContentItem(FileSearchToolCallResultContentItemType? type, string text, IDictionary serializedAdditionalRawData) + { + Type = type; + Text = text; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The type of the content. + public FileSearchToolCallResultContentItemType? Type { get; } + /// The text content of the file. + public string Text { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResultContentItemType.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResultContentItemType.cs new file mode 100644 index 000000000000..e9a465abb4fc --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolCallResultContentItemType.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.AI.OpenAI.Assistants +{ + /// The FileSearchToolCallResultContentItem_type. + public readonly partial struct FileSearchToolCallResultContentItemType : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public FileSearchToolCallResultContentItemType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string TextValue = "text"; + + /// text. + public static FileSearchToolCallResultContentItemType Text { get; } = new FileSearchToolCallResultContentItemType(TextValue); + /// Determines if two values are the same. + public static bool operator ==(FileSearchToolCallResultContentItemType left, FileSearchToolCallResultContentItemType right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(FileSearchToolCallResultContentItemType left, FileSearchToolCallResultContentItemType right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator FileSearchToolCallResultContentItemType(string value) => new FileSearchToolCallResultContentItemType(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is FileSearchToolCallResultContentItemType other && Equals(other); + /// + public bool Equals(FileSearchToolCallResultContentItemType 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepRetrievalToolCall.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolDefinition.Serialization.cs similarity index 60% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepRetrievalToolCall.Serialization.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolDefinition.Serialization.cs index b3efbd20a0e9..89ef61c42fb2 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepRetrievalToolCall.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolDefinition.Serialization.cs @@ -13,11 +13,11 @@ namespace Azure.AI.OpenAI.Assistants { - public partial class RunStepRetrievalToolCall : IUtf8JsonSerializable, IJsonModel + public partial class FileSearchToolDefinition : IUtf8JsonSerializable, IJsonModel { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); - void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) { writer.WriteStartObject(); JsonModelWriteCore(writer, options); @@ -28,36 +28,33 @@ void IJsonModel.Write(Utf8JsonWriter writer, ModelRead /// 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; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(RunStepRetrievalToolCall)} does not support writing '{format}' format."); + throw new FormatException($"The model {nameof(FileSearchToolDefinition)} does not support writing '{format}' format."); } base.JsonModelWriteCore(writer, options); - writer.WritePropertyName("retrieval"u8); - writer.WriteStartObject(); - foreach (var item in Retrieval) + if (Optional.IsDefined(FileSearch)) { - writer.WritePropertyName(item.Key); - writer.WriteStringValue(item.Value); + writer.WritePropertyName("file_search"u8); + writer.WriteObjectValue(FileSearch, options); } - writer.WriteEndObject(); } - RunStepRetrievalToolCall IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + FileSearchToolDefinition IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(RunStepRetrievalToolCall)} does not support reading '{format}' format."); + throw new FormatException($"The model {nameof(FileSearchToolDefinition)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return DeserializeRunStepRetrievalToolCall(document.RootElement, options); + return DeserializeFileSearchToolDefinition(document.RootElement, options); } - internal static RunStepRetrievalToolCall DeserializeRunStepRetrievalToolCall(JsonElement element, ModelReaderWriterOptions options = null) + internal static FileSearchToolDefinition DeserializeFileSearchToolDefinition(JsonElement element, ModelReaderWriterOptions options = null) { options ??= ModelSerializationExtensions.WireOptions; @@ -65,21 +62,19 @@ internal static RunStepRetrievalToolCall DeserializeRunStepRetrievalToolCall(Jso { return null; } - IReadOnlyDictionary retrieval = default; + FileSearchToolDefinitionDetails fileSearch = default; string type = default; - string id = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); foreach (var property in element.EnumerateObject()) { - if (property.NameEquals("retrieval"u8)) + if (property.NameEquals("file_search"u8)) { - Dictionary dictionary = new Dictionary(); - foreach (var property0 in property.Value.EnumerateObject()) + if (property.Value.ValueKind == JsonValueKind.Null) { - dictionary.Add(property0.Name, property0.Value.GetString()); + continue; } - retrieval = dictionary; + fileSearch = FileSearchToolDefinitionDetails.DeserializeFileSearchToolDefinitionDetails(property.Value, options); continue; } if (property.NameEquals("type"u8)) @@ -87,57 +82,52 @@ internal static RunStepRetrievalToolCall DeserializeRunStepRetrievalToolCall(Jso type = property.Value.GetString(); continue; } - if (property.NameEquals("id"u8)) - { - id = property.Value.GetString(); - continue; - } if (options.Format != "W") { rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); } } serializedAdditionalRawData = rawDataDictionary; - return new RunStepRetrievalToolCall(type, id, serializedAdditionalRawData, retrieval); + return new FileSearchToolDefinition(type, serializedAdditionalRawData, fileSearch); } - BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + 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(RunStepRetrievalToolCall)} does not support writing '{options.Format}' format."); + throw new FormatException($"The model {nameof(FileSearchToolDefinition)} does not support writing '{options.Format}' format."); } } - RunStepRetrievalToolCall IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + FileSearchToolDefinition IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; switch (format) { case "J": { using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeRunStepRetrievalToolCall(document.RootElement, options); + return DeserializeFileSearchToolDefinition(document.RootElement, options); } default: - throw new FormatException($"The model {nameof(RunStepRetrievalToolCall)} does not support reading '{options.Format}' format."); + throw new FormatException($"The model {nameof(FileSearchToolDefinition)} does not support reading '{options.Format}' format."); } } - string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; /// Deserializes the model from a raw response. /// The response to deserialize the model from. - internal static new RunStepRetrievalToolCall FromResponse(Response response) + internal static new FileSearchToolDefinition FromResponse(Response response) { using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeRunStepRetrievalToolCall(document.RootElement); + return DeserializeFileSearchToolDefinition(document.RootElement); } /// Convert into a . diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolDefinition.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolDefinition.cs new file mode 100644 index 000000000000..e68594b90832 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolDefinition.cs @@ -0,0 +1,34 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// The input definition information for a file search tool as used to configure an assistant. + public partial class FileSearchToolDefinition : ToolDefinition + { + /// Initializes a new instance of . + public FileSearchToolDefinition() + { + Type = "file_search"; + } + + /// Initializes a new instance of . + /// The object type. + /// Keeps track of any properties unknown to the library. + /// Options overrides for the file search tool. + internal FileSearchToolDefinition(string type, IDictionary serializedAdditionalRawData, FileSearchToolDefinitionDetails fileSearch) : base(type, serializedAdditionalRawData) + { + FileSearch = fileSearch; + } + + /// Options overrides for the file search tool. + public FileSearchToolDefinitionDetails FileSearch { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolDefinitionDetails.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolDefinitionDetails.Serialization.cs new file mode 100644 index 000000000000..eee4d45e9194 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolDefinitionDetails.Serialization.cs @@ -0,0 +1,149 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class FileSearchToolDefinitionDetails : 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(FileSearchToolDefinitionDetails)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(MaxNumResults)) + { + writer.WritePropertyName("max_num_results"u8); + writer.WriteNumberValue(MaxNumResults.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 + } + } + } + + FileSearchToolDefinitionDetails 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(FileSearchToolDefinitionDetails)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeFileSearchToolDefinitionDetails(document.RootElement, options); + } + + internal static FileSearchToolDefinitionDetails DeserializeFileSearchToolDefinitionDetails(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + int? maxNumResults = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("max_num_results"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + maxNumResults = property.Value.GetInt32(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new FileSearchToolDefinitionDetails(maxNumResults, 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(FileSearchToolDefinitionDetails)} does not support writing '{options.Format}' format."); + } + } + + FileSearchToolDefinitionDetails 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 DeserializeFileSearchToolDefinitionDetails(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(FileSearchToolDefinitionDetails)} 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 FileSearchToolDefinitionDetails FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeFileSearchToolDefinitionDetails(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolDefinitionDetails.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolDefinitionDetails.cs new file mode 100644 index 000000000000..019548640805 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolDefinitionDetails.cs @@ -0,0 +1,73 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Options overrides for the file search tool. + public partial class FileSearchToolDefinitionDetails + { + /// + /// 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 FileSearchToolDefinitionDetails() + { + } + + /// Initializes a new instance of . + /// + /// The maximum number of results the file search tool should output. The default is 20 for gpt-4* models and 5 for gpt-3.5-turbo. This number should be between 1 and 50 inclusive. + /// + /// Note that the file search tool may output fewer than `max_num_results` results. See the file search tool documentation for more information. + /// + /// Keeps track of any properties unknown to the library. + internal FileSearchToolDefinitionDetails(int? maxNumResults, IDictionary serializedAdditionalRawData) + { + MaxNumResults = maxNumResults; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// + /// The maximum number of results the file search tool should output. The default is 20 for gpt-4* models and 5 for gpt-3.5-turbo. This number should be between 1 and 50 inclusive. + /// + /// Note that the file search tool may output fewer than `max_num_results` results. See the file search tool documentation for more information. + /// + public int? MaxNumResults { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolResource.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolResource.Serialization.cs new file mode 100644 index 000000000000..8957903edbe7 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolResource.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.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + public partial class FileSearchToolResource : 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(FileSearchToolResource)} does not support writing '{format}' format."); + } + + if (Optional.IsCollectionDefined(VectorStoreIds)) + { + writer.WritePropertyName("vector_store_ids"u8); + writer.WriteStartArray(); + foreach (var item in VectorStoreIds) + { + 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 + } + } + } + + FileSearchToolResource 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(FileSearchToolResource)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeFileSearchToolResource(document.RootElement, options); + } + + internal static FileSearchToolResource DeserializeFileSearchToolResource(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList vectorStoreIds = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("vector_store_ids"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + vectorStoreIds = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new FileSearchToolResource(vectorStoreIds ?? 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(FileSearchToolResource)} does not support writing '{options.Format}' format."); + } + } + + FileSearchToolResource 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 DeserializeFileSearchToolResource(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(FileSearchToolResource)} 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 FileSearchToolResource FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeFileSearchToolResource(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolResource.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolResource.cs new file mode 100644 index 000000000000..94422e677d08 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileSearchToolResource.cs @@ -0,0 +1,72 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// A set of resources that are used by the `file_search` tool. + public partial class FileSearchToolResource + { + /// + /// 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 FileSearchToolResource() + { + VectorStoreIds = new ChangeTrackingList(); + } + + /// Initializes a new instance of . + /// + /// The ID of the vector store attached to this assistant. There can be a maximum of 1 vector + /// store attached to the assistant. + /// + /// Keeps track of any properties unknown to the library. + internal FileSearchToolResource(IReadOnlyList vectorStoreIds, IDictionary serializedAdditionalRawData) + { + VectorStoreIds = vectorStoreIds; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// + /// The ID of the vector store attached to this assistant. There can be a maximum of 1 vector + /// store attached to the assistant. + /// + public IReadOnlyList VectorStoreIds { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileState.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileState.cs new file mode 100644 index 000000000000..47ce58179d3d --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FileState.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; + +namespace Azure.AI.OpenAI.Assistants +{ + /// The state of the file. + public readonly partial struct FileState : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public FileState(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string UploadedValue = "uploaded"; + private const string PendingValue = "pending"; + private const string RunningValue = "running"; + private const string ProcessedValue = "processed"; + private const string ErrorValue = "error"; + private const string DeletingValue = "deleting"; + private const string DeletedValue = "deleted"; + + /// + /// The file has been uploaded but it's not yet processed. This state is not returned by Azure OpenAI and exposed only for + /// compatibility. It can be categorized as an inactive state. + /// + public static FileState Uploaded { get; } = new FileState(UploadedValue); + /// The operation was created and is not queued to be processed in the future. It can be categorized as an inactive state. + public static FileState Pending { get; } = new FileState(PendingValue); + /// The operation has started to be processed. It can be categorized as an active state. + public static FileState Running { get; } = new FileState(RunningValue); + /// The operation has successfully processed and is ready for consumption. It can be categorized as a terminal state. + public static FileState Processed { get; } = new FileState(ProcessedValue); + /// The operation has completed processing with a failure and cannot be further consumed. It can be categorized as a terminal state. + public static FileState Error { get; } = new FileState(ErrorValue); + /// + /// The entity is in the process to be deleted. This state is not returned by Azure OpenAI and exposed only for compatibility. + /// It can be categorized as an active state. + /// + public static FileState Deleting { get; } = new FileState(DeletingValue); + /// + /// The entity has been deleted but may still be referenced by other entities predating the deletion. It can be categorized as a + /// terminal state. + /// + public static FileState Deleted { get; } = new FileState(DeletedValue); + /// Determines if two values are the same. + public static bool operator ==(FileState left, FileState right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(FileState left, FileState right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator FileState(string value) => new FileState(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is FileState other && Equals(other); + /// + public bool Equals(FileState 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateAssistantFileRequest.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FunctionName.Serialization.cs similarity index 61% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateAssistantFileRequest.Serialization.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FunctionName.Serialization.cs index 5399705adc93..fb4ff9ca04a5 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateAssistantFileRequest.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FunctionName.Serialization.cs @@ -13,11 +13,11 @@ namespace Azure.AI.OpenAI.Assistants { - internal partial class CreateAssistantFileRequest : IUtf8JsonSerializable, IJsonModel + public partial class FunctionName : IUtf8JsonSerializable, IJsonModel { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); - void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) { writer.WriteStartObject(); JsonModelWriteCore(writer, options); @@ -28,14 +28,14 @@ void IJsonModel.Write(Utf8JsonWriter writer, ModelRe /// 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; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(CreateAssistantFileRequest)} does not support writing '{format}' format."); + throw new FormatException($"The model {nameof(FunctionName)} does not support writing '{format}' format."); } - writer.WritePropertyName("file_id"u8); - writer.WriteStringValue(FileId); + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); if (options.Format != "W" && _serializedAdditionalRawData != null) { foreach (var item in _serializedAdditionalRawData) @@ -53,19 +53,19 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } } - CreateAssistantFileRequest IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + FunctionName IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(CreateAssistantFileRequest)} does not support reading '{format}' format."); + throw new FormatException($"The model {nameof(FunctionName)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return DeserializeCreateAssistantFileRequest(document.RootElement, options); + return DeserializeFunctionName(document.RootElement, options); } - internal static CreateAssistantFileRequest DeserializeCreateAssistantFileRequest(JsonElement element, ModelReaderWriterOptions options = null) + internal static FunctionName DeserializeFunctionName(JsonElement element, ModelReaderWriterOptions options = null) { options ??= ModelSerializationExtensions.WireOptions; @@ -73,14 +73,14 @@ internal static CreateAssistantFileRequest DeserializeCreateAssistantFileRequest { return null; } - string fileId = default; + string name = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); foreach (var property in element.EnumerateObject()) { - if (property.NameEquals("file_id"u8)) + if (property.NameEquals("name"u8)) { - fileId = property.Value.GetString(); + name = property.Value.GetString(); continue; } if (options.Format != "W") @@ -89,46 +89,46 @@ internal static CreateAssistantFileRequest DeserializeCreateAssistantFileRequest } } serializedAdditionalRawData = rawDataDictionary; - return new CreateAssistantFileRequest(fileId, serializedAdditionalRawData); + return new FunctionName(name, serializedAdditionalRawData); } - BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + 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(CreateAssistantFileRequest)} does not support writing '{options.Format}' format."); + throw new FormatException($"The model {nameof(FunctionName)} does not support writing '{options.Format}' format."); } } - CreateAssistantFileRequest IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + FunctionName IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; switch (format) { case "J": { using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeCreateAssistantFileRequest(document.RootElement, options); + return DeserializeFunctionName(document.RootElement, options); } default: - throw new FormatException($"The model {nameof(CreateAssistantFileRequest)} does not support reading '{options.Format}' format."); + throw new FormatException($"The model {nameof(FunctionName)} does not support reading '{options.Format}' format."); } } - string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; /// Deserializes the model from a raw response. /// The response to deserialize the model from. - internal static CreateAssistantFileRequest FromResponse(Response response) + internal static FunctionName FromResponse(Response response) { using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeCreateAssistantFileRequest(document.RootElement); + return DeserializeFunctionName(document.RootElement); } /// Convert into a . diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FunctionName.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FunctionName.cs new file mode 100644 index 000000000000..70fcf993d4ae --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/FunctionName.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; + +namespace Azure.AI.OpenAI.Assistants +{ + /// The function name that will be used, if using the `function` tool. + public partial class FunctionName + { + /// + /// 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 function to call. + /// is null. + public FunctionName(string name) + { + Argument.AssertNotNull(name, nameof(name)); + + Name = name; + } + + /// Initializes a new instance of . + /// The name of the function to call. + /// Keeps track of any properties unknown to the library. + internal FunctionName(string name, IDictionary serializedAdditionalRawData) + { + Name = name; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal FunctionName() + { + } + + /// The name of the function to call. + public string Name { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/IncompleteRunDetails.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/IncompleteRunDetails.cs new file mode 100644 index 000000000000..373733568f34 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/IncompleteRunDetails.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 Azure.AI.OpenAI.Assistants +{ + /// The reason why the run is incomplete. This will point to which specific token limit was reached over the course of the run. + public readonly partial struct IncompleteRunDetails : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public IncompleteRunDetails(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string MaxCompletionTokensValue = "max_completion_tokens"; + private const string MaxPromptTokensValue = "max_prompt_tokens"; + + /// Maximum completion tokens exceeded. + public static IncompleteRunDetails MaxCompletionTokens { get; } = new IncompleteRunDetails(MaxCompletionTokensValue); + /// Maximum prompt tokens exceeded. + public static IncompleteRunDetails MaxPromptTokens { get; } = new IncompleteRunDetails(MaxPromptTokensValue); + /// Determines if two values are the same. + public static bool operator ==(IncompleteRunDetails left, IncompleteRunDetails right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(IncompleteRunDetails left, IncompleteRunDetails right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator IncompleteRunDetails(string value) => new IncompleteRunDetails(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is IncompleteRunDetails other && Equals(other); + /// + public bool Equals(IncompleteRunDetails 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalAssistantFileDeletionStatusObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalAssistantFileDeletionStatusObject.cs deleted file mode 100644 index 5c52700f6c0f..000000000000 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalAssistantFileDeletionStatusObject.cs +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using System.ComponentModel; - -namespace Azure.AI.OpenAI.Assistants -{ - /// The InternalAssistantFileDeletionStatus_object. - internal readonly partial struct InternalAssistantFileDeletionStatusObject : IEquatable - { - private readonly string _value; - - /// Initializes a new instance of . - /// is null. - public InternalAssistantFileDeletionStatusObject(string value) - { - _value = value ?? throw new ArgumentNullException(nameof(value)); - } - - private const string AssistantFileDeletedValue = "assistant.file.deleted"; - - /// assistant.file.deleted. - public static InternalAssistantFileDeletionStatusObject AssistantFileDeleted { get; } = new InternalAssistantFileDeletionStatusObject(AssistantFileDeletedValue); - /// Determines if two values are the same. - public static bool operator ==(InternalAssistantFileDeletionStatusObject left, InternalAssistantFileDeletionStatusObject right) => left.Equals(right); - /// Determines if two values are not the same. - public static bool operator !=(InternalAssistantFileDeletionStatusObject left, InternalAssistantFileDeletionStatusObject right) => !left.Equals(right); - /// Converts a to a . - public static implicit operator InternalAssistantFileDeletionStatusObject(string value) => new InternalAssistantFileDeletionStatusObject(value); - - /// - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is InternalAssistantFileDeletionStatusObject other && Equals(other); - /// - public bool Equals(InternalAssistantFileDeletionStatusObject 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageImageFileDetails.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageImageFileDetails.cs index eb315c465ad1..89cfab2a18a4 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageImageFileDetails.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageImageFileDetails.cs @@ -48,7 +48,7 @@ internal partial class InternalMessageImageFileDetails /// Initializes a new instance of . /// The ID for the file associated with this image. /// is null. - internal InternalMessageImageFileDetails(string internalDetails) + public InternalMessageImageFileDetails(string internalDetails) { Argument.AssertNotNull(internalDetails, nameof(internalDetails)); @@ -70,6 +70,6 @@ internal InternalMessageImageFileDetails() } /// The ID for the file associated with this image. - public string InternalDetails { get; } + public string InternalDetails { get; set; } } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageTextDetails.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageTextDetails.Serialization.cs index 9b7a63c4c392..51a2be6fdef4 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageTextDetails.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageTextDetails.Serialization.cs @@ -81,7 +81,7 @@ internal static InternalMessageTextDetails DeserializeInternalMessageTextDetails return null; } string value = default; - IReadOnlyList annotations = default; + IList annotations = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); foreach (var property in element.EnumerateObject()) diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageTextDetails.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageTextDetails.cs index 7f6a60a62245..4489c4dd184e 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageTextDetails.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageTextDetails.cs @@ -54,7 +54,7 @@ internal partial class InternalMessageTextDetails /// The available derived classes include and . /// /// or is null. - internal InternalMessageTextDetails(string text, IEnumerable annotations) + public InternalMessageTextDetails(string text, IEnumerable annotations) { Argument.AssertNotNull(text, nameof(text)); Argument.AssertNotNull(annotations, nameof(annotations)); @@ -71,7 +71,7 @@ internal InternalMessageTextDetails(string text, IEnumerable and . /// /// Keeps track of any properties unknown to the library. - internal InternalMessageTextDetails(string text, IReadOnlyList annotations, IDictionary serializedAdditionalRawData) + internal InternalMessageTextDetails(string text, IList annotations, IDictionary serializedAdditionalRawData) { Text = text; Annotations = annotations; @@ -84,12 +84,12 @@ internal InternalMessageTextDetails() } /// The text data. - public string Text { get; } + public string Text { get; set; } /// /// A list of annotations associated with this text. /// 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 IReadOnlyList Annotations { get; } + public IList Annotations { get; } } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageTextFileCitationDetails.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageTextFileCitationDetails.cs index 3bbdf07622ce..158100231c04 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageTextFileCitationDetails.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageTextFileCitationDetails.cs @@ -49,7 +49,7 @@ internal partial class InternalMessageTextFileCitationDetails /// The ID of the file associated with this citation. /// The specific quote cited in the associated file. /// or is null. - internal InternalMessageTextFileCitationDetails(string fileId, string quote) + public InternalMessageTextFileCitationDetails(string fileId, string quote) { Argument.AssertNotNull(fileId, nameof(fileId)); Argument.AssertNotNull(quote, nameof(quote)); @@ -75,8 +75,8 @@ internal InternalMessageTextFileCitationDetails() } /// The ID of the file associated with this citation. - public string FileId { get; } + public string FileId { get; set; } /// The specific quote cited in the associated file. - public string Quote { get; } + public string Quote { get; set; } } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageTextFilePathDetails.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageTextFilePathDetails.cs index 4b86d66be5a2..f56d8a2f2cce 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageTextFilePathDetails.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalMessageTextFilePathDetails.cs @@ -48,7 +48,7 @@ internal partial class InternalMessageTextFilePathDetails /// Initializes a new instance of . /// The ID of the specific file that the citation is from. /// is null. - internal InternalMessageTextFilePathDetails(string fileId) + public InternalMessageTextFilePathDetails(string fileId) { Argument.AssertNotNull(fileId, nameof(fileId)); @@ -70,6 +70,6 @@ internal InternalMessageTextFilePathDetails() } /// The ID of the specific file that the citation is from. - public string FileId { get; } + public string FileId { get; set; } } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageAttachment.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageAttachment.Serialization.cs new file mode 100644 index 000000000000..757e1dcee158 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageAttachment.Serialization.cs @@ -0,0 +1,179 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class MessageAttachment : 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(MessageAttachment)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("file_id"u8); + writer.WriteStringValue(FileId); + writer.WritePropertyName("tools"u8); + writer.WriteStartArray(); + foreach (var item in Tools) + { + if (item == null) + { + writer.WriteNullValue(); + continue; + } +#if NET6_0_OR_GREATER + writer.WriteRawValue(item); +#else + using (JsonDocument document = JsonDocument.Parse(item, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + 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 + } + } + } + + MessageAttachment 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(MessageAttachment)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMessageAttachment(document.RootElement, options); + } + + internal static MessageAttachment DeserializeMessageAttachment(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string fileId = default; + IList tools = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("file_id"u8)) + { + fileId = property.Value.GetString(); + continue; + } + if (property.NameEquals("tools"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + if (item.ValueKind == JsonValueKind.Null) + { + array.Add(null); + } + else + { + array.Add(BinaryData.FromString(item.GetRawText())); + } + } + tools = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new MessageAttachment(fileId, tools, 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(MessageAttachment)} does not support writing '{options.Format}' format."); + } + } + + MessageAttachment 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 DeserializeMessageAttachment(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MessageAttachment)} 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 MessageAttachment FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeMessageAttachment(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageAttachment.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageAttachment.cs new file mode 100644 index 000000000000..f905e2a52576 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageAttachment.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; +using System.Linq; + +namespace Azure.AI.OpenAI.Assistants +{ + /// This describes to which tools a file has been attached. + public partial class MessageAttachment + { + /// + /// 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 ID of the file to attach to the message. + /// The tools to add to this file. + /// or is null. + public MessageAttachment(string fileId, IEnumerable tools) + { + Argument.AssertNotNull(fileId, nameof(fileId)); + Argument.AssertNotNull(tools, nameof(tools)); + + FileId = fileId; + Tools = tools.ToList(); + } + + /// Initializes a new instance of . + /// The ID of the file to attach to the message. + /// The tools to add to this file. + /// Keeps track of any properties unknown to the library. + internal MessageAttachment(string fileId, IList tools, IDictionary serializedAdditionalRawData) + { + FileId = fileId; + Tools = tools; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal MessageAttachment() + { + } + + /// The ID of the file to attach to the message. + public string FileId { get; set; } + /// + /// The tools to add to this file. + /// + /// To assign an object to the element of this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// + /// Supported types: + /// + /// + /// + /// + /// + /// + /// 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 IList Tools { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDelta.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDelta.Serialization.cs new file mode 100644 index 000000000000..9b27c0a4b619 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDelta.Serialization.cs @@ -0,0 +1,160 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class MessageDelta : 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(MessageDelta)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("role"u8); + writer.WriteStringValue(Role.ToString()); + writer.WritePropertyName("content"u8); + writer.WriteStartArray(); + foreach (var item in Content) + { + 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 + } + } + } + + MessageDelta 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(MessageDelta)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMessageDelta(document.RootElement, options); + } + + internal static MessageDelta DeserializeMessageDelta(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + MessageRole role = default; + IReadOnlyList content = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("role"u8)) + { + role = new MessageRole(property.Value.GetString()); + continue; + } + if (property.NameEquals("content"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(MessageDeltaContent.DeserializeMessageDeltaContent(item, options)); + } + content = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new MessageDelta(role, content, 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(MessageDelta)} does not support writing '{options.Format}' format."); + } + } + + MessageDelta 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 DeserializeMessageDelta(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MessageDelta)} 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 MessageDelta FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeMessageDelta(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDelta.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDelta.cs new file mode 100644 index 000000000000..ec114efcb09d --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDelta.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 Azure.AI.OpenAI.Assistants +{ + /// Represents the typed 'delta' payload within a streaming message delta chunk. + public partial class MessageDelta + { + /// + /// 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 entity that produced the message. + /// + /// The content of the message as an array of text and/or images. + /// 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 . + /// + /// is null. + internal MessageDelta(MessageRole role, IEnumerable content) + { + Argument.AssertNotNull(content, nameof(content)); + + Role = role; + Content = content.ToList(); + } + + /// Initializes a new instance of . + /// The entity that produced the message. + /// + /// The content of the message as an array of text and/or images. + /// 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 . + /// + /// Keeps track of any properties unknown to the library. + internal MessageDelta(MessageRole role, IReadOnlyList content, IDictionary serializedAdditionalRawData) + { + Role = role; + Content = content; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal MessageDelta() + { + } + + /// The entity that produced the message. + public MessageRole Role { get; } + /// + /// The content of the message as an array of text and/or images. + /// 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 IReadOnlyList Content { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageFile.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaChunk.Serialization.cs similarity index 64% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageFile.Serialization.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaChunk.Serialization.cs index bae85ab90a4f..fd7cf3e6bb08 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageFile.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaChunk.Serialization.cs @@ -13,11 +13,11 @@ namespace Azure.AI.OpenAI.Assistants { - public partial class MessageFile : IUtf8JsonSerializable, IJsonModel + public partial class MessageDeltaChunk : IUtf8JsonSerializable, IJsonModel { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); - void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) { writer.WriteStartObject(); JsonModelWriteCore(writer, options); @@ -28,20 +28,18 @@ void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptio /// 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; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(MessageFile)} does not support writing '{format}' format."); + throw new FormatException($"The model {nameof(MessageDeltaChunk)} does not support writing '{format}' format."); } writer.WritePropertyName("id"u8); writer.WriteStringValue(Id); writer.WritePropertyName("object"u8); - writer.WriteStringValue(Object); - writer.WritePropertyName("created_at"u8); - writer.WriteNumberValue(CreatedAt, "U"); - writer.WritePropertyName("message_id"u8); - writer.WriteStringValue(MessageId); + writer.WriteStringValue(Object.ToString()); + writer.WritePropertyName("delta"u8); + writer.WriteObjectValue(Delta, options); if (options.Format != "W" && _serializedAdditionalRawData != null) { foreach (var item in _serializedAdditionalRawData) @@ -59,19 +57,19 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } } - MessageFile IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + MessageDeltaChunk IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(MessageFile)} does not support reading '{format}' format."); + throw new FormatException($"The model {nameof(MessageDeltaChunk)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return DeserializeMessageFile(document.RootElement, options); + return DeserializeMessageDeltaChunk(document.RootElement, options); } - internal static MessageFile DeserializeMessageFile(JsonElement element, ModelReaderWriterOptions options = null) + internal static MessageDeltaChunk DeserializeMessageDeltaChunk(JsonElement element, ModelReaderWriterOptions options = null) { options ??= ModelSerializationExtensions.WireOptions; @@ -80,9 +78,8 @@ internal static MessageFile DeserializeMessageFile(JsonElement element, ModelRea return null; } string id = default; - string @object = default; - DateTimeOffset createdAt = default; - string messageId = default; + MessageDeltaChunkObject @object = default; + MessageDelta delta = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); foreach (var property in element.EnumerateObject()) @@ -94,17 +91,12 @@ internal static MessageFile DeserializeMessageFile(JsonElement element, ModelRea } if (property.NameEquals("object"u8)) { - @object = property.Value.GetString(); + @object = new MessageDeltaChunkObject(property.Value.GetString()); continue; } - if (property.NameEquals("created_at"u8)) + if (property.NameEquals("delta"u8)) { - createdAt = DateTimeOffset.FromUnixTimeSeconds(property.Value.GetInt64()); - continue; - } - if (property.NameEquals("message_id"u8)) - { - messageId = property.Value.GetString(); + delta = MessageDelta.DeserializeMessageDelta(property.Value, options); continue; } if (options.Format != "W") @@ -113,46 +105,46 @@ internal static MessageFile DeserializeMessageFile(JsonElement element, ModelRea } } serializedAdditionalRawData = rawDataDictionary; - return new MessageFile(id, @object, createdAt, messageId, serializedAdditionalRawData); + return new MessageDeltaChunk(id, @object, delta, serializedAdditionalRawData); } - BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + 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(MessageFile)} does not support writing '{options.Format}' format."); + throw new FormatException($"The model {nameof(MessageDeltaChunk)} does not support writing '{options.Format}' format."); } } - MessageFile IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + MessageDeltaChunk IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; switch (format) { case "J": { using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeMessageFile(document.RootElement, options); + return DeserializeMessageDeltaChunk(document.RootElement, options); } default: - throw new FormatException($"The model {nameof(MessageFile)} does not support reading '{options.Format}' format."); + throw new FormatException($"The model {nameof(MessageDeltaChunk)} does not support reading '{options.Format}' format."); } } - string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; /// Deserializes the model from a raw response. /// The response to deserialize the model from. - internal static MessageFile FromResponse(Response response) + internal static MessageDeltaChunk FromResponse(Response response) { using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeMessageFile(document.RootElement); + return DeserializeMessageDeltaChunk(document.RootElement); } /// Convert into a . diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageFile.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaChunk.cs similarity index 56% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageFile.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaChunk.cs index a33691868926..3a8984a1a101 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageFile.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaChunk.cs @@ -10,8 +10,8 @@ namespace Azure.AI.OpenAI.Assistants { - /// Information about a file attached to an assistant thread message. - public partial class MessageFile + /// Represents a message delta i.e. any changed fields on a message during streaming. + public partial class MessageDeltaChunk { /// /// Keeps track of any properties unknown to the library. @@ -45,47 +45,43 @@ public partial class MessageFile /// private IDictionary _serializedAdditionalRawData; - /// Initializes a new instance of . - /// The identifier, which can be referenced in API endpoints. - /// The Unix timestamp, in seconds, representing when this object was created. - /// The ID of the message that this file is attached to. - /// or is null. - internal MessageFile(string id, DateTimeOffset createdAt, string messageId) + /// Initializes a new instance of . + /// The identifier of the message, which can be referenced in API endpoints. + /// The delta containing the fields that have changed on the Message. + /// or is null. + internal MessageDeltaChunk(string id, MessageDelta delta) { Argument.AssertNotNull(id, nameof(id)); - Argument.AssertNotNull(messageId, nameof(messageId)); + Argument.AssertNotNull(delta, nameof(delta)); Id = id; - CreatedAt = createdAt; - MessageId = messageId; + Delta = delta; } - /// Initializes a new instance of . - /// The identifier, which can be referenced in API endpoints. - /// The object type, which is always 'thread.message.file'. - /// The Unix timestamp, in seconds, representing when this object was created. - /// The ID of the message that this file is attached to. + /// Initializes a new instance of . + /// The identifier of the message, which can be referenced in API endpoints. + /// The object type, which is always `thread.message.delta`. + /// The delta containing the fields that have changed on the Message. /// Keeps track of any properties unknown to the library. - internal MessageFile(string id, string @object, DateTimeOffset createdAt, string messageId, IDictionary serializedAdditionalRawData) + internal MessageDeltaChunk(string id, MessageDeltaChunkObject @object, MessageDelta delta, IDictionary serializedAdditionalRawData) { Id = id; Object = @object; - CreatedAt = createdAt; - MessageId = messageId; + Delta = delta; _serializedAdditionalRawData = serializedAdditionalRawData; } - /// Initializes a new instance of for deserialization. - internal MessageFile() + /// Initializes a new instance of for deserialization. + internal MessageDeltaChunk() { } - /// The identifier, which can be referenced in API endpoints. + /// The identifier of the message, which can be referenced in API endpoints. public string Id { get; } + /// The object type, which is always `thread.message.delta`. + public MessageDeltaChunkObject Object { get; } = MessageDeltaChunkObject.ThreadMessageDelta; - /// The Unix timestamp, in seconds, representing when this object was created. - public DateTimeOffset CreatedAt { get; } - /// The ID of the message that this file is attached to. - public string MessageId { get; } + /// The delta containing the fields that have changed on the Message. + public MessageDelta Delta { get; } } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaChunkObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaChunkObject.cs new file mode 100644 index 000000000000..b8b58471b5b6 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaChunkObject.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.AI.OpenAI.Assistants +{ + /// The MessageDeltaChunk_object. + public readonly partial struct MessageDeltaChunkObject : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public MessageDeltaChunkObject(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string ThreadMessageDeltaValue = "thread.message.delta"; + + /// thread.message.delta. + public static MessageDeltaChunkObject ThreadMessageDelta { get; } = new MessageDeltaChunkObject(ThreadMessageDeltaValue); + /// Determines if two values are the same. + public static bool operator ==(MessageDeltaChunkObject left, MessageDeltaChunkObject right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(MessageDeltaChunkObject left, MessageDeltaChunkObject right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator MessageDeltaChunkObject(string value) => new MessageDeltaChunkObject(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is MessageDeltaChunkObject other && Equals(other); + /// + public bool Equals(MessageDeltaChunkObject 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaContent.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaContent.Serialization.cs new file mode 100644 index 000000000000..4fb64165c9f6 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaContent.Serialization.cs @@ -0,0 +1,136 @@ +// 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.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + [PersistableModelProxy(typeof(UnknownMessageDeltaContent))] + public partial class MessageDeltaContent : 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(MessageDeltaContent)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("index"u8); + writer.WriteNumberValue(Index); + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type); + 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 + } + } + } + + MessageDeltaContent 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(MessageDeltaContent)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMessageDeltaContent(document.RootElement, options); + } + + internal static MessageDeltaContent DeserializeMessageDeltaContent(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type", out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "image_file": return MessageDeltaImageFileContent.DeserializeMessageDeltaImageFileContent(element, options); + case "text": return MessageDeltaTextContentObject.DeserializeMessageDeltaTextContentObject(element, options); + } + } + return UnknownMessageDeltaContent.DeserializeUnknownMessageDeltaContent(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(MessageDeltaContent)} does not support writing '{options.Format}' format."); + } + } + + MessageDeltaContent 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 DeserializeMessageDeltaContent(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MessageDeltaContent)} 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 MessageDeltaContent FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeMessageDeltaContent(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaContent.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaContent.cs new file mode 100644 index 000000000000..454d8e437f56 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaContent.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.AI.OpenAI.Assistants +{ + /// + /// The abstract base representation of a partial streamed message content payload. + /// 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 MessageDeltaContent + { + /// + /// 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 . + /// The index of the content part of the message. + protected MessageDeltaContent(int index) + { + Index = index; + } + + /// Initializes a new instance of . + /// The index of the content part of the message. + /// The type of content for this content part. + /// Keeps track of any properties unknown to the library. + internal MessageDeltaContent(int index, string type, IDictionary serializedAdditionalRawData) + { + Index = index; + Type = type; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal MessageDeltaContent() + { + } + + /// The index of the content part of the message. + public int Index { get; } + /// The type of content for this content part. + internal string Type { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaImageFileContent.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaImageFileContent.Serialization.cs new file mode 100644 index 000000000000..6bb7eb0f9d16 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaImageFileContent.Serialization.cs @@ -0,0 +1,147 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class MessageDeltaImageFileContent : 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(MessageDeltaImageFileContent)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(ImageFile)) + { + writer.WritePropertyName("image_file"u8); + writer.WriteObjectValue(ImageFile, options); + } + } + + MessageDeltaImageFileContent 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(MessageDeltaImageFileContent)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMessageDeltaImageFileContent(document.RootElement, options); + } + + internal static MessageDeltaImageFileContent DeserializeMessageDeltaImageFileContent(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + MessageDeltaImageFileContentObject imageFile = default; + int index = default; + string type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("image_file"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + imageFile = MessageDeltaImageFileContentObject.DeserializeMessageDeltaImageFileContentObject(property.Value, options); + continue; + } + if (property.NameEquals("index"u8)) + { + index = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new MessageDeltaImageFileContent(index, type, serializedAdditionalRawData, imageFile); + } + + 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(MessageDeltaImageFileContent)} does not support writing '{options.Format}' format."); + } + } + + MessageDeltaImageFileContent 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 DeserializeMessageDeltaImageFileContent(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MessageDeltaImageFileContent)} 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 MessageDeltaImageFileContent FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeMessageDeltaImageFileContent(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaImageFileContent.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaImageFileContent.cs new file mode 100644 index 000000000000..212421c7c2e7 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaImageFileContent.cs @@ -0,0 +1,41 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Represents a streamed image file content part within a streaming message delta chunk. + public partial class MessageDeltaImageFileContent : MessageDeltaContent + { + /// Initializes a new instance of . + /// The index of the content part of the message. + internal MessageDeltaImageFileContent(int index) : base(index) + { + Type = "image_file"; + } + + /// Initializes a new instance of . + /// The index of the content part of the message. + /// The type of content for this content part. + /// Keeps track of any properties unknown to the library. + /// The image_file data. + internal MessageDeltaImageFileContent(int index, string type, IDictionary serializedAdditionalRawData, MessageDeltaImageFileContentObject imageFile) : base(index, type, serializedAdditionalRawData) + { + ImageFile = imageFile; + } + + /// Initializes a new instance of for deserialization. + internal MessageDeltaImageFileContent() + { + } + + /// The image_file data. + public MessageDeltaImageFileContentObject ImageFile { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaImageFileContentObject.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaImageFileContentObject.Serialization.cs new file mode 100644 index 000000000000..f8452d6289ab --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaImageFileContentObject.Serialization.cs @@ -0,0 +1,145 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class MessageDeltaImageFileContentObject : 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(MessageDeltaImageFileContentObject)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(FileId)) + { + writer.WritePropertyName("file_id"u8); + writer.WriteStringValue(FileId); + } + 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 + } + } + } + + MessageDeltaImageFileContentObject 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(MessageDeltaImageFileContentObject)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMessageDeltaImageFileContentObject(document.RootElement, options); + } + + internal static MessageDeltaImageFileContentObject DeserializeMessageDeltaImageFileContentObject(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string fileId = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("file_id"u8)) + { + fileId = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new MessageDeltaImageFileContentObject(fileId, 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(MessageDeltaImageFileContentObject)} does not support writing '{options.Format}' format."); + } + } + + MessageDeltaImageFileContentObject 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 DeserializeMessageDeltaImageFileContentObject(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MessageDeltaImageFileContentObject)} 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 MessageDeltaImageFileContentObject FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeMessageDeltaImageFileContentObject(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaImageFileContentObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaImageFileContentObject.cs new file mode 100644 index 000000000000..592b0e9cef60 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaImageFileContentObject.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.AI.OpenAI.Assistants +{ + /// Represents the 'image_file' payload within streaming image file content. + public partial class MessageDeltaImageFileContentObject + { + /// + /// 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 MessageDeltaImageFileContentObject() + { + } + + /// Initializes a new instance of . + /// The file ID of the image in the message content. + /// Keeps track of any properties unknown to the library. + internal MessageDeltaImageFileContentObject(string fileId, IDictionary serializedAdditionalRawData) + { + FileId = fileId; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The file ID of the image in the message content. + public string FileId { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextAnnotation.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextAnnotation.Serialization.cs new file mode 100644 index 000000000000..e17d766b64e0 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextAnnotation.Serialization.cs @@ -0,0 +1,136 @@ +// 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.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + [PersistableModelProxy(typeof(UnknownMessageDeltaTextAnnotation))] + public partial class MessageDeltaTextAnnotation : 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(MessageDeltaTextAnnotation)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("index"u8); + writer.WriteNumberValue(Index); + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type); + 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 + } + } + } + + MessageDeltaTextAnnotation 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(MessageDeltaTextAnnotation)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMessageDeltaTextAnnotation(document.RootElement, options); + } + + internal static MessageDeltaTextAnnotation DeserializeMessageDeltaTextAnnotation(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type", out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "file_citation": return MessageDeltaTextFileCitationAnnotationObject.DeserializeMessageDeltaTextFileCitationAnnotationObject(element, options); + case "file_path": return MessageDeltaTextFilePathAnnotationObject.DeserializeMessageDeltaTextFilePathAnnotationObject(element, options); + } + } + return UnknownMessageDeltaTextAnnotation.DeserializeUnknownMessageDeltaTextAnnotation(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(MessageDeltaTextAnnotation)} does not support writing '{options.Format}' format."); + } + } + + MessageDeltaTextAnnotation 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 DeserializeMessageDeltaTextAnnotation(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MessageDeltaTextAnnotation)} 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 MessageDeltaTextAnnotation FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeMessageDeltaTextAnnotation(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextAnnotation.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextAnnotation.cs new file mode 100644 index 000000000000..2171bf6148cb --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextAnnotation.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.AI.OpenAI.Assistants +{ + /// + /// The abstract base representation of a streamed text content part's text annotation. + /// 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 MessageDeltaTextAnnotation + { + /// + /// 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 . + /// The index of the annotation within a text content part. + protected MessageDeltaTextAnnotation(int index) + { + Index = index; + } + + /// Initializes a new instance of . + /// The index of the annotation within a text content part. + /// The type of the text content annotation. + /// Keeps track of any properties unknown to the library. + internal MessageDeltaTextAnnotation(int index, string type, IDictionary serializedAdditionalRawData) + { + Index = index; + Type = type; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal MessageDeltaTextAnnotation() + { + } + + /// The index of the annotation within a text content part. + public int Index { get; } + /// The type of the text content annotation. + internal string Type { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextContent.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextContent.Serialization.cs new file mode 100644 index 000000000000..8f7f833260b9 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextContent.Serialization.cs @@ -0,0 +1,170 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class MessageDeltaTextContent : 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(MessageDeltaTextContent)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(Value)) + { + writer.WritePropertyName("value"u8); + writer.WriteStringValue(Value); + } + if (Optional.IsCollectionDefined(Annotations)) + { + writer.WritePropertyName("annotations"u8); + writer.WriteStartArray(); + foreach (var item in Annotations) + { + 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 + } + } + } + + MessageDeltaTextContent 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(MessageDeltaTextContent)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMessageDeltaTextContent(document.RootElement, options); + } + + internal static MessageDeltaTextContent DeserializeMessageDeltaTextContent(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string value = default; + IReadOnlyList annotations = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("value"u8)) + { + value = property.Value.GetString(); + continue; + } + if (property.NameEquals("annotations"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(MessageDeltaTextAnnotation.DeserializeMessageDeltaTextAnnotation(item, options)); + } + annotations = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new MessageDeltaTextContent(value, annotations ?? 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(MessageDeltaTextContent)} does not support writing '{options.Format}' format."); + } + } + + MessageDeltaTextContent 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 DeserializeMessageDeltaTextContent(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MessageDeltaTextContent)} 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 MessageDeltaTextContent FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeMessageDeltaTextContent(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextContent.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextContent.cs new file mode 100644 index 000000000000..15c4cac2d7ca --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextContent.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.AI.OpenAI.Assistants +{ + /// Represents the data of a streamed text content part within a streaming message delta chunk. + public partial class MessageDeltaTextContent + { + /// + /// 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 MessageDeltaTextContent() + { + Annotations = new ChangeTrackingList(); + } + + /// Initializes a new instance of . + /// The data that makes up the text. + /// + /// Annotations for the text. + /// 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 . + /// + /// Keeps track of any properties unknown to the library. + internal MessageDeltaTextContent(string value, IReadOnlyList annotations, IDictionary serializedAdditionalRawData) + { + Value = value; + Annotations = annotations; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The data that makes up the text. + public string Value { get; } + /// + /// Annotations for the text. + /// 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 IReadOnlyList Annotations { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextContentObject.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextContentObject.Serialization.cs new file mode 100644 index 000000000000..870b54bc371d --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextContentObject.Serialization.cs @@ -0,0 +1,147 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class MessageDeltaTextContentObject : 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(MessageDeltaTextContentObject)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Text)) + { + writer.WritePropertyName("text"u8); + writer.WriteObjectValue(Text, options); + } + } + + MessageDeltaTextContentObject 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(MessageDeltaTextContentObject)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMessageDeltaTextContentObject(document.RootElement, options); + } + + internal static MessageDeltaTextContentObject DeserializeMessageDeltaTextContentObject(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + MessageDeltaTextContent text = default; + int index = default; + string type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("text"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + text = MessageDeltaTextContent.DeserializeMessageDeltaTextContent(property.Value, options); + continue; + } + if (property.NameEquals("index"u8)) + { + index = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new MessageDeltaTextContentObject(index, type, serializedAdditionalRawData, text); + } + + 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(MessageDeltaTextContentObject)} does not support writing '{options.Format}' format."); + } + } + + MessageDeltaTextContentObject 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 DeserializeMessageDeltaTextContentObject(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MessageDeltaTextContentObject)} 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 MessageDeltaTextContentObject FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeMessageDeltaTextContentObject(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextContentObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextContentObject.cs new file mode 100644 index 000000000000..54247431988a --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextContentObject.cs @@ -0,0 +1,41 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Represents a streamed text content part within a streaming message delta chunk. + public partial class MessageDeltaTextContentObject : MessageDeltaContent + { + /// Initializes a new instance of . + /// The index of the content part of the message. + internal MessageDeltaTextContentObject(int index) : base(index) + { + Type = "text"; + } + + /// Initializes a new instance of . + /// The index of the content part of the message. + /// The type of content for this content part. + /// Keeps track of any properties unknown to the library. + /// The text content details. + internal MessageDeltaTextContentObject(int index, string type, IDictionary serializedAdditionalRawData, MessageDeltaTextContent text) : base(index, type, serializedAdditionalRawData) + { + Text = text; + } + + /// Initializes a new instance of for deserialization. + internal MessageDeltaTextContentObject() + { + } + + /// The text content details. + public MessageDeltaTextContent Text { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFileCitationAnnotation.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFileCitationAnnotation.Serialization.cs new file mode 100644 index 000000000000..ee069d01c29e --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFileCitationAnnotation.Serialization.cs @@ -0,0 +1,156 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class MessageDeltaTextFileCitationAnnotation : 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(MessageDeltaTextFileCitationAnnotation)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(FileId)) + { + writer.WritePropertyName("file_id"u8); + writer.WriteStringValue(FileId); + } + if (Optional.IsDefined(Quote)) + { + writer.WritePropertyName("quote"u8); + writer.WriteStringValue(Quote); + } + 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 + } + } + } + + MessageDeltaTextFileCitationAnnotation 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(MessageDeltaTextFileCitationAnnotation)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMessageDeltaTextFileCitationAnnotation(document.RootElement, options); + } + + internal static MessageDeltaTextFileCitationAnnotation DeserializeMessageDeltaTextFileCitationAnnotation(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string fileId = default; + string quote = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("file_id"u8)) + { + fileId = property.Value.GetString(); + continue; + } + if (property.NameEquals("quote"u8)) + { + quote = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new MessageDeltaTextFileCitationAnnotation(fileId, quote, 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(MessageDeltaTextFileCitationAnnotation)} does not support writing '{options.Format}' format."); + } + } + + MessageDeltaTextFileCitationAnnotation 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 DeserializeMessageDeltaTextFileCitationAnnotation(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MessageDeltaTextFileCitationAnnotation)} 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 MessageDeltaTextFileCitationAnnotation FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeMessageDeltaTextFileCitationAnnotation(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFileCitationAnnotation.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFileCitationAnnotation.cs new file mode 100644 index 000000000000..6f2fd703c231 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFileCitationAnnotation.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.AI.OpenAI.Assistants +{ + /// Represents the data of a streamed file citation as applied to a streaming text content part. + public partial class MessageDeltaTextFileCitationAnnotation + { + /// + /// 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 MessageDeltaTextFileCitationAnnotation() + { + } + + /// Initializes a new instance of . + /// The ID of the specific file the citation is from. + /// The specific quote in the cited file. + /// Keeps track of any properties unknown to the library. + internal MessageDeltaTextFileCitationAnnotation(string fileId, string quote, IDictionary serializedAdditionalRawData) + { + FileId = fileId; + Quote = quote; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The ID of the specific file the citation is from. + public string FileId { get; } + /// The specific quote in the cited file. + public string Quote { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFileCitationAnnotationObject.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFileCitationAnnotationObject.Serialization.cs new file mode 100644 index 000000000000..1d631f9bded1 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFileCitationAnnotationObject.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.AI.OpenAI.Assistants +{ + public partial class MessageDeltaTextFileCitationAnnotationObject : 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(MessageDeltaTextFileCitationAnnotationObject)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(FileCitation)) + { + writer.WritePropertyName("file_citation"u8); + writer.WriteObjectValue(FileCitation, options); + } + if (Optional.IsDefined(Text)) + { + writer.WritePropertyName("text"u8); + writer.WriteStringValue(Text); + } + if (Optional.IsDefined(StartIndex)) + { + writer.WritePropertyName("start_index"u8); + writer.WriteNumberValue(StartIndex.Value); + } + if (Optional.IsDefined(EndIndex)) + { + writer.WritePropertyName("end_index"u8); + writer.WriteNumberValue(EndIndex.Value); + } + } + + MessageDeltaTextFileCitationAnnotationObject 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(MessageDeltaTextFileCitationAnnotationObject)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMessageDeltaTextFileCitationAnnotationObject(document.RootElement, options); + } + + internal static MessageDeltaTextFileCitationAnnotationObject DeserializeMessageDeltaTextFileCitationAnnotationObject(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + MessageDeltaTextFileCitationAnnotation fileCitation = default; + string text = default; + int? startIndex = default; + int? endIndex = default; + int index = default; + string type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("file_citation"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + fileCitation = MessageDeltaTextFileCitationAnnotation.DeserializeMessageDeltaTextFileCitationAnnotation(property.Value, options); + continue; + } + if (property.NameEquals("text"u8)) + { + text = property.Value.GetString(); + continue; + } + if (property.NameEquals("start_index"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + startIndex = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("end_index"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + endIndex = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("index"u8)) + { + index = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new MessageDeltaTextFileCitationAnnotationObject( + index, + type, + serializedAdditionalRawData, + fileCitation, + text, + startIndex, + endIndex); + } + + 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(MessageDeltaTextFileCitationAnnotationObject)} does not support writing '{options.Format}' format."); + } + } + + MessageDeltaTextFileCitationAnnotationObject 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 DeserializeMessageDeltaTextFileCitationAnnotationObject(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MessageDeltaTextFileCitationAnnotationObject)} 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 MessageDeltaTextFileCitationAnnotationObject FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeMessageDeltaTextFileCitationAnnotationObject(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFileCitationAnnotationObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFileCitationAnnotationObject.cs new file mode 100644 index 000000000000..1a67dafe8dfa --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFileCitationAnnotationObject.cs @@ -0,0 +1,53 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Represents a streamed file citation applied to a streaming text content part. + public partial class MessageDeltaTextFileCitationAnnotationObject : MessageDeltaTextAnnotation + { + /// Initializes a new instance of . + /// The index of the annotation within a text content part. + internal MessageDeltaTextFileCitationAnnotationObject(int index) : base(index) + { + Type = "file_citation"; + } + + /// Initializes a new instance of . + /// The index of the annotation within a text content part. + /// The type of the text content annotation. + /// Keeps track of any properties unknown to the library. + /// The file citation information. + /// The text in the message content that needs to be replaced. + /// The start index of this annotation in the content text. + /// The end index of this annotation in the content text. + internal MessageDeltaTextFileCitationAnnotationObject(int index, string type, IDictionary serializedAdditionalRawData, MessageDeltaTextFileCitationAnnotation fileCitation, string text, int? startIndex, int? endIndex) : base(index, type, serializedAdditionalRawData) + { + FileCitation = fileCitation; + Text = text; + StartIndex = startIndex; + EndIndex = endIndex; + } + + /// Initializes a new instance of for deserialization. + internal MessageDeltaTextFileCitationAnnotationObject() + { + } + + /// The file citation information. + public MessageDeltaTextFileCitationAnnotation FileCitation { get; } + /// The text in the message content that needs to be replaced. + public string Text { get; } + /// The start index of this annotation in the content text. + public int? StartIndex { get; } + /// The end index of this annotation in the content text. + public int? EndIndex { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFilePathAnnotation.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFilePathAnnotation.Serialization.cs new file mode 100644 index 000000000000..57e4b12964f9 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFilePathAnnotation.Serialization.cs @@ -0,0 +1,145 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class MessageDeltaTextFilePathAnnotation : 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(MessageDeltaTextFilePathAnnotation)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(FileId)) + { + writer.WritePropertyName("file_id"u8); + writer.WriteStringValue(FileId); + } + 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 + } + } + } + + MessageDeltaTextFilePathAnnotation 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(MessageDeltaTextFilePathAnnotation)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMessageDeltaTextFilePathAnnotation(document.RootElement, options); + } + + internal static MessageDeltaTextFilePathAnnotation DeserializeMessageDeltaTextFilePathAnnotation(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string fileId = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("file_id"u8)) + { + fileId = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new MessageDeltaTextFilePathAnnotation(fileId, 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(MessageDeltaTextFilePathAnnotation)} does not support writing '{options.Format}' format."); + } + } + + MessageDeltaTextFilePathAnnotation 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 DeserializeMessageDeltaTextFilePathAnnotation(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MessageDeltaTextFilePathAnnotation)} 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 MessageDeltaTextFilePathAnnotation FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeMessageDeltaTextFilePathAnnotation(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFilePathAnnotation.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFilePathAnnotation.cs new file mode 100644 index 000000000000..dbdd8626dc56 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFilePathAnnotation.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.AI.OpenAI.Assistants +{ + /// Represents the data of a streamed file path annotation as applied to a streaming text content part. + public partial class MessageDeltaTextFilePathAnnotation + { + /// + /// 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 MessageDeltaTextFilePathAnnotation() + { + } + + /// Initializes a new instance of . + /// The file ID for the annotation. + /// Keeps track of any properties unknown to the library. + internal MessageDeltaTextFilePathAnnotation(string fileId, IDictionary serializedAdditionalRawData) + { + FileId = fileId; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The file ID for the annotation. + public string FileId { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFilePathAnnotationObject.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFilePathAnnotationObject.Serialization.cs new file mode 100644 index 000000000000..8c54af2bbcc6 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFilePathAnnotationObject.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.AI.OpenAI.Assistants +{ + public partial class MessageDeltaTextFilePathAnnotationObject : 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(MessageDeltaTextFilePathAnnotationObject)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(FilePath)) + { + writer.WritePropertyName("file_path"u8); + writer.WriteObjectValue(FilePath, options); + } + if (Optional.IsDefined(StartIndex)) + { + writer.WritePropertyName("start_index"u8); + writer.WriteNumberValue(StartIndex.Value); + } + if (Optional.IsDefined(EndIndex)) + { + writer.WritePropertyName("end_index"u8); + writer.WriteNumberValue(EndIndex.Value); + } + if (Optional.IsDefined(Text)) + { + writer.WritePropertyName("text"u8); + writer.WriteStringValue(Text); + } + } + + MessageDeltaTextFilePathAnnotationObject 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(MessageDeltaTextFilePathAnnotationObject)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMessageDeltaTextFilePathAnnotationObject(document.RootElement, options); + } + + internal static MessageDeltaTextFilePathAnnotationObject DeserializeMessageDeltaTextFilePathAnnotationObject(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + MessageDeltaTextFilePathAnnotation filePath = default; + int? startIndex = default; + int? endIndex = default; + string text = default; + int index = default; + string type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("file_path"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + filePath = MessageDeltaTextFilePathAnnotation.DeserializeMessageDeltaTextFilePathAnnotation(property.Value, options); + continue; + } + if (property.NameEquals("start_index"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + startIndex = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("end_index"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + endIndex = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("text"u8)) + { + text = property.Value.GetString(); + continue; + } + if (property.NameEquals("index"u8)) + { + index = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new MessageDeltaTextFilePathAnnotationObject( + index, + type, + serializedAdditionalRawData, + filePath, + startIndex, + endIndex, + text); + } + + 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(MessageDeltaTextFilePathAnnotationObject)} does not support writing '{options.Format}' format."); + } + } + + MessageDeltaTextFilePathAnnotationObject 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 DeserializeMessageDeltaTextFilePathAnnotationObject(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MessageDeltaTextFilePathAnnotationObject)} 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 MessageDeltaTextFilePathAnnotationObject FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeMessageDeltaTextFilePathAnnotationObject(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFilePathAnnotationObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFilePathAnnotationObject.cs new file mode 100644 index 000000000000..85df4f20c57d --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageDeltaTextFilePathAnnotationObject.cs @@ -0,0 +1,53 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Represents a streamed file path annotation applied to a streaming text content part. + public partial class MessageDeltaTextFilePathAnnotationObject : MessageDeltaTextAnnotation + { + /// Initializes a new instance of . + /// The index of the annotation within a text content part. + internal MessageDeltaTextFilePathAnnotationObject(int index) : base(index) + { + Type = "file_path"; + } + + /// Initializes a new instance of . + /// The index of the annotation within a text content part. + /// The type of the text content annotation. + /// Keeps track of any properties unknown to the library. + /// The file path information. + /// The start index of this annotation in the content text. + /// The end index of this annotation in the content text. + /// The text in the message content that needs to be replaced. + internal MessageDeltaTextFilePathAnnotationObject(int index, string type, IDictionary serializedAdditionalRawData, MessageDeltaTextFilePathAnnotation filePath, int? startIndex, int? endIndex, string text) : base(index, type, serializedAdditionalRawData) + { + FilePath = filePath; + StartIndex = startIndex; + EndIndex = endIndex; + Text = text; + } + + /// Initializes a new instance of for deserialization. + internal MessageDeltaTextFilePathAnnotationObject() + { + } + + /// The file path information. + public MessageDeltaTextFilePathAnnotation FilePath { get; } + /// The start index of this annotation in the content text. + public int? StartIndex { get; } + /// The end index of this annotation in the content text. + public int? EndIndex { get; } + /// The text in the message content that needs to be replaced. + public string Text { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageImageFileContent.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageImageFileContent.cs index 8997ff05b177..7e252658ea5e 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageImageFileContent.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageImageFileContent.cs @@ -16,7 +16,7 @@ public partial class MessageImageFileContent : MessageContent /// Initializes a new instance of . /// The image file for this thread message content item. /// is null. - internal MessageImageFileContent(InternalMessageImageFileDetails internalDetails) + public MessageImageFileContent(InternalMessageImageFileDetails internalDetails) { Argument.AssertNotNull(internalDetails, nameof(internalDetails)); diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageIncompleteDetails.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageIncompleteDetails.Serialization.cs new file mode 100644 index 000000000000..6faa89be320e --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageIncompleteDetails.Serialization.cs @@ -0,0 +1,142 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class MessageIncompleteDetails : 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(MessageIncompleteDetails)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("reason"u8); + writer.WriteStringValue(Reason.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 + } + } + } + + MessageIncompleteDetails 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(MessageIncompleteDetails)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMessageIncompleteDetails(document.RootElement, options); + } + + internal static MessageIncompleteDetails DeserializeMessageIncompleteDetails(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + MessageIncompleteDetailsReason reason = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("reason"u8)) + { + reason = new MessageIncompleteDetailsReason(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new MessageIncompleteDetails(reason, 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(MessageIncompleteDetails)} does not support writing '{options.Format}' format."); + } + } + + MessageIncompleteDetails 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 DeserializeMessageIncompleteDetails(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MessageIncompleteDetails)} 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 MessageIncompleteDetails FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeMessageIncompleteDetails(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageIncompleteDetails.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageIncompleteDetails.cs new file mode 100644 index 000000000000..335c1009db7f --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageIncompleteDetails.cs @@ -0,0 +1,72 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Information providing additional detail about a message entering an incomplete status. + public partial class MessageIncompleteDetails + { + /// + /// 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 provided reason describing why the message was marked as incomplete. + public MessageIncompleteDetails(MessageIncompleteDetailsReason reason) + { + Reason = reason; + } + + /// Initializes a new instance of . + /// The provided reason describing why the message was marked as incomplete. + /// Keeps track of any properties unknown to the library. + internal MessageIncompleteDetails(MessageIncompleteDetailsReason reason, IDictionary serializedAdditionalRawData) + { + Reason = reason; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal MessageIncompleteDetails() + { + } + + /// The provided reason describing why the message was marked as incomplete. + public MessageIncompleteDetailsReason Reason { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageIncompleteDetailsReason.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageIncompleteDetailsReason.cs new file mode 100644 index 000000000000..ec0c57835d91 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageIncompleteDetailsReason.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.AI.OpenAI.Assistants +{ + /// A set of reasons describing why a message is marked as incomplete. + public readonly partial struct MessageIncompleteDetailsReason : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public MessageIncompleteDetailsReason(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string ContentFilterValue = "content_filter"; + private const string MaxTokensValue = "max_tokens"; + private const string RunCancelledValue = "run_cancelled"; + private const string RunFailedValue = "run_failed"; + private const string RunExpiredValue = "run_expired"; + + /// The run generating the message was terminated due to content filter flagging. + public static MessageIncompleteDetailsReason ContentFilter { get; } = new MessageIncompleteDetailsReason(ContentFilterValue); + /// The run generating the message exhausted available tokens before completion. + public static MessageIncompleteDetailsReason MaxTokens { get; } = new MessageIncompleteDetailsReason(MaxTokensValue); + /// The run generating the message was cancelled before completion. + public static MessageIncompleteDetailsReason RunCancelled { get; } = new MessageIncompleteDetailsReason(RunCancelledValue); + /// The run generating the message failed. + public static MessageIncompleteDetailsReason RunFailed { get; } = new MessageIncompleteDetailsReason(RunFailedValue); + /// The run generating the message expired. + public static MessageIncompleteDetailsReason RunExpired { get; } = new MessageIncompleteDetailsReason(RunExpiredValue); + /// Determines if two values are the same. + public static bool operator ==(MessageIncompleteDetailsReason left, MessageIncompleteDetailsReason right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(MessageIncompleteDetailsReason left, MessageIncompleteDetailsReason right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator MessageIncompleteDetailsReason(string value) => new MessageIncompleteDetailsReason(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is MessageIncompleteDetailsReason other && Equals(other); + /// + public bool Equals(MessageIncompleteDetailsReason 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageStatus.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageStatus.cs new file mode 100644 index 000000000000..d63a6bcf8b56 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageStatus.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.AI.OpenAI.Assistants +{ + /// The possible execution status values for a thread message. + public readonly partial struct MessageStatus : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public MessageStatus(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string InProgressValue = "in_progress"; + private const string IncompleteValue = "incomplete"; + private const string CompletedValue = "completed"; + + /// A run is currently creating this message. + public static MessageStatus InProgress { get; } = new MessageStatus(InProgressValue); + /// This message is incomplete. See incomplete_details for more information. + public static MessageStatus Incomplete { get; } = new MessageStatus(IncompleteValue); + /// This message was successfully completed by a run. + public static MessageStatus Completed { get; } = new MessageStatus(CompletedValue); + /// Determines if two values are the same. + public static bool operator ==(MessageStatus left, MessageStatus right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(MessageStatus left, MessageStatus right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator MessageStatus(string value) => new MessageStatus(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is MessageStatus other && Equals(other); + /// + public bool Equals(MessageStatus 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageStreamEvent.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageStreamEvent.cs new file mode 100644 index 000000000000..13c90b7d0b77 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageStreamEvent.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.AI.OpenAI.Assistants +{ + /// Message operation related streaming events. + public readonly partial struct MessageStreamEvent : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public MessageStreamEvent(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string ThreadMessageCreatedValue = "thread.message.created"; + private const string ThreadMessageInProgressValue = "thread.message.in_progress"; + private const string ThreadMessageDeltaValue = "thread.message.delta"; + private const string ThreadMessageCompletedValue = "thread.message.completed"; + private const string ThreadMessageIncompleteValue = "thread.message.incomplete"; + + /// Event sent when a new message is created. The data of this event is of type ThreadMessage. + public static MessageStreamEvent ThreadMessageCreated { get; } = new MessageStreamEvent(ThreadMessageCreatedValue); + /// Event sent when a message moves to `in_progress` status. The data of this event is of type ThreadMessage. + public static MessageStreamEvent ThreadMessageInProgress { get; } = new MessageStreamEvent(ThreadMessageInProgressValue); + /// Event sent when a message is being streamed. The data of this event is of type MessageDeltaChunk. + public static MessageStreamEvent ThreadMessageDelta { get; } = new MessageStreamEvent(ThreadMessageDeltaValue); + /// Event sent when a message is completed. The data of this event is of type ThreadMessage. + public static MessageStreamEvent ThreadMessageCompleted { get; } = new MessageStreamEvent(ThreadMessageCompletedValue); + /// Event sent before a message is completed. The data of this event is of type ThreadMessage. + public static MessageStreamEvent ThreadMessageIncomplete { get; } = new MessageStreamEvent(ThreadMessageIncompleteValue); + /// Determines if two values are the same. + public static bool operator ==(MessageStreamEvent left, MessageStreamEvent right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(MessageStreamEvent left, MessageStreamEvent right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator MessageStreamEvent(string value) => new MessageStreamEvent(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is MessageStreamEvent other && Equals(other); + /// + public bool Equals(MessageStreamEvent 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextAnnotation.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextAnnotation.Serialization.cs index fdc1994429ae..0a4c9644f85e 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextAnnotation.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextAnnotation.Serialization.cs @@ -38,10 +38,6 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteStringValue(Type); writer.WritePropertyName("text"u8); writer.WriteStringValue(Text); - writer.WritePropertyName("start_index"u8); - writer.WriteNumberValue(StartIndex); - writer.WritePropertyName("end_index"u8); - writer.WriteNumberValue(EndIndex); if (options.Format != "W" && _serializedAdditionalRawData != null) { foreach (var item in _serializedAdditionalRawData) diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextAnnotation.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextAnnotation.cs index 082f8fea6a5b..aa8769d7ed21 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextAnnotation.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextAnnotation.cs @@ -51,30 +51,22 @@ public abstract partial class MessageTextAnnotation /// Initializes a new instance of . /// The textual content associated with this text annotation item. - /// The first text index associated with this text annotation. - /// The last text index associated with this text annotation. /// is null. - protected MessageTextAnnotation(string text, int startIndex, int endIndex) + protected MessageTextAnnotation(string text) { Argument.AssertNotNull(text, nameof(text)); Text = text; - StartIndex = startIndex; - EndIndex = endIndex; } /// Initializes a new instance of . /// The object type. /// The textual content associated with this text annotation item. - /// The first text index associated with this text annotation. - /// The last text index associated with this text annotation. /// Keeps track of any properties unknown to the library. - internal MessageTextAnnotation(string type, string text, int startIndex, int endIndex, IDictionary serializedAdditionalRawData) + internal MessageTextAnnotation(string type, string text, IDictionary serializedAdditionalRawData) { Type = type; Text = text; - StartIndex = startIndex; - EndIndex = endIndex; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -86,10 +78,6 @@ internal MessageTextAnnotation() /// The object type. internal string Type { get; set; } /// The textual content associated with this text annotation item. - public string Text { get; } - /// The first text index associated with this text annotation. - public int StartIndex { get; } - /// The last text index associated with this text annotation. - public int EndIndex { get; } + public string Text { get; set; } } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextContent.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextContent.cs index 61d7241bb927..ef579043014c 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextContent.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextContent.cs @@ -16,7 +16,7 @@ public partial class MessageTextContent : MessageContent /// Initializes a new instance of . /// The text and associated annotations for this thread message content item. /// is null. - internal MessageTextContent(InternalMessageTextDetails internalDetails) + public MessageTextContent(InternalMessageTextDetails internalDetails) { Argument.AssertNotNull(internalDetails, nameof(internalDetails)); diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextFileCitationAnnotation.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextFileCitationAnnotation.Serialization.cs index 678600787d28..3a0adb7f527f 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextFileCitationAnnotation.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextFileCitationAnnotation.Serialization.cs @@ -37,6 +37,16 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri base.JsonModelWriteCore(writer, options); writer.WritePropertyName("file_citation"u8); writer.WriteObjectValue(InternalDetails, options); + if (Optional.IsDefined(StartIndex)) + { + writer.WritePropertyName("start_index"u8); + writer.WriteNumberValue(StartIndex.Value); + } + if (Optional.IsDefined(EndIndex)) + { + writer.WritePropertyName("end_index"u8); + writer.WriteNumberValue(EndIndex.Value); + } } MessageTextFileCitationAnnotation IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) @@ -60,10 +70,10 @@ internal static MessageTextFileCitationAnnotation DeserializeMessageTextFileCita return null; } InternalMessageTextFileCitationDetails fileCitation = default; + int? startIndex = default; + int? endIndex = default; string type = default; string text = default; - int startIndex = default; - int endIndex = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); foreach (var property in element.EnumerateObject()) @@ -73,24 +83,32 @@ internal static MessageTextFileCitationAnnotation DeserializeMessageTextFileCita fileCitation = InternalMessageTextFileCitationDetails.DeserializeInternalMessageTextFileCitationDetails(property.Value, options); continue; } - if (property.NameEquals("type"u8)) + if (property.NameEquals("start_index"u8)) { - type = property.Value.GetString(); + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + startIndex = property.Value.GetInt32(); continue; } - if (property.NameEquals("text"u8)) + if (property.NameEquals("end_index"u8)) { - text = property.Value.GetString(); + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + endIndex = property.Value.GetInt32(); continue; } - if (property.NameEquals("start_index"u8)) + if (property.NameEquals("type"u8)) { - startIndex = property.Value.GetInt32(); + type = property.Value.GetString(); continue; } - if (property.NameEquals("end_index"u8)) + if (property.NameEquals("text"u8)) { - endIndex = property.Value.GetInt32(); + text = property.Value.GetString(); continue; } if (options.Format != "W") @@ -102,10 +120,10 @@ internal static MessageTextFileCitationAnnotation DeserializeMessageTextFileCita return new MessageTextFileCitationAnnotation( type, text, - startIndex, - endIndex, serializedAdditionalRawData, - fileCitation); + fileCitation, + startIndex, + endIndex); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextFileCitationAnnotation.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextFileCitationAnnotation.cs index a036ec9b468b..6db943f9c9a3 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextFileCitationAnnotation.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextFileCitationAnnotation.cs @@ -10,19 +10,17 @@ namespace Azure.AI.OpenAI.Assistants { - /// A citation within the message that points to a specific quote from a specific File associated with the assistant or the message. Generated when the assistant uses the 'retrieval' tool to search files. + /// A citation within the message that points to a specific quote from a specific File associated with the assistant or the message. Generated when the assistant uses the 'file_search' tool to search files. public partial class MessageTextFileCitationAnnotation : MessageTextAnnotation { /// Initializes a new instance of . /// The textual content associated with this text annotation item. - /// The first text index associated with this text annotation. - /// The last text index associated with this text annotation. /// /// A citation within the message that points to a specific quote from a specific file. - /// Generated when the assistant uses the "retrieval" tool to search files. + /// Generated when the assistant uses the "file_search" tool to search files. /// /// or is null. - internal MessageTextFileCitationAnnotation(string text, int startIndex, int endIndex, InternalMessageTextFileCitationDetails internalDetails) : base(text, startIndex, endIndex) + public MessageTextFileCitationAnnotation(string text, InternalMessageTextFileCitationDetails internalDetails) : base(text) { Argument.AssertNotNull(text, nameof(text)); Argument.AssertNotNull(internalDetails, nameof(internalDetails)); @@ -34,21 +32,27 @@ internal MessageTextFileCitationAnnotation(string text, int startIndex, int endI /// Initializes a new instance of . /// The object type. /// The textual content associated with this text annotation item. - /// The first text index associated with this text annotation. - /// The last text index associated with this text annotation. /// Keeps track of any properties unknown to the library. /// /// A citation within the message that points to a specific quote from a specific file. - /// Generated when the assistant uses the "retrieval" tool to search files. + /// Generated when the assistant uses the "file_search" tool to search files. /// - internal MessageTextFileCitationAnnotation(string type, string text, int startIndex, int endIndex, IDictionary serializedAdditionalRawData, InternalMessageTextFileCitationDetails internalDetails) : base(type, text, startIndex, endIndex, serializedAdditionalRawData) + /// The first text index associated with this text annotation. + /// The last text index associated with this text annotation. + internal MessageTextFileCitationAnnotation(string type, string text, IDictionary serializedAdditionalRawData, InternalMessageTextFileCitationDetails internalDetails, int? startIndex, int? endIndex) : base(type, text, serializedAdditionalRawData) { InternalDetails = internalDetails; + StartIndex = startIndex; + EndIndex = endIndex; } /// Initializes a new instance of for deserialization. internal MessageTextFileCitationAnnotation() { } + /// The first text index associated with this text annotation. + public int? StartIndex { get; set; } + /// The last text index associated with this text annotation. + public int? EndIndex { get; set; } } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextFilePathAnnotation.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextFilePathAnnotation.Serialization.cs index 2ce71641798e..ed63ad704b75 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextFilePathAnnotation.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextFilePathAnnotation.Serialization.cs @@ -37,6 +37,16 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri base.JsonModelWriteCore(writer, options); writer.WritePropertyName("file_path"u8); writer.WriteObjectValue(InternalDetails, options); + if (Optional.IsDefined(StartIndex)) + { + writer.WritePropertyName("start_index"u8); + writer.WriteNumberValue(StartIndex.Value); + } + if (Optional.IsDefined(EndIndex)) + { + writer.WritePropertyName("end_index"u8); + writer.WriteNumberValue(EndIndex.Value); + } } MessageTextFilePathAnnotation IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) @@ -60,10 +70,10 @@ internal static MessageTextFilePathAnnotation DeserializeMessageTextFilePathAnno return null; } InternalMessageTextFilePathDetails filePath = default; + int? startIndex = default; + int? endIndex = default; string type = default; string text = default; - int startIndex = default; - int endIndex = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); foreach (var property in element.EnumerateObject()) @@ -73,24 +83,32 @@ internal static MessageTextFilePathAnnotation DeserializeMessageTextFilePathAnno filePath = InternalMessageTextFilePathDetails.DeserializeInternalMessageTextFilePathDetails(property.Value, options); continue; } - if (property.NameEquals("type"u8)) + if (property.NameEquals("start_index"u8)) { - type = property.Value.GetString(); + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + startIndex = property.Value.GetInt32(); continue; } - if (property.NameEquals("text"u8)) + if (property.NameEquals("end_index"u8)) { - text = property.Value.GetString(); + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + endIndex = property.Value.GetInt32(); continue; } - if (property.NameEquals("start_index"u8)) + if (property.NameEquals("type"u8)) { - startIndex = property.Value.GetInt32(); + type = property.Value.GetString(); continue; } - if (property.NameEquals("end_index"u8)) + if (property.NameEquals("text"u8)) { - endIndex = property.Value.GetInt32(); + text = property.Value.GetString(); continue; } if (options.Format != "W") @@ -102,10 +120,10 @@ internal static MessageTextFilePathAnnotation DeserializeMessageTextFilePathAnno return new MessageTextFilePathAnnotation( type, text, - startIndex, - endIndex, serializedAdditionalRawData, - filePath); + filePath, + startIndex, + endIndex); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextFilePathAnnotation.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextFilePathAnnotation.cs index 787c70831f54..276bb7ded43d 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextFilePathAnnotation.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/MessageTextFilePathAnnotation.cs @@ -15,11 +15,9 @@ public partial class MessageTextFilePathAnnotation : MessageTextAnnotation { /// Initializes a new instance of . /// The textual content associated with this text annotation item. - /// The first text index associated with this text annotation. - /// The last text index associated with this text annotation. /// A URL for the file that's generated when the assistant used the code_interpreter tool to generate a file. /// or is null. - internal MessageTextFilePathAnnotation(string text, int startIndex, int endIndex, InternalMessageTextFilePathDetails internalDetails) : base(text, startIndex, endIndex) + public MessageTextFilePathAnnotation(string text, InternalMessageTextFilePathDetails internalDetails) : base(text) { Argument.AssertNotNull(text, nameof(text)); Argument.AssertNotNull(internalDetails, nameof(internalDetails)); @@ -31,18 +29,24 @@ internal MessageTextFilePathAnnotation(string text, int startIndex, int endIndex /// Initializes a new instance of . /// The object type. /// The textual content associated with this text annotation item. - /// The first text index associated with this text annotation. - /// The last text index associated with this text annotation. /// Keeps track of any properties unknown to the library. /// A URL for the file that's generated when the assistant used the code_interpreter tool to generate a file. - internal MessageTextFilePathAnnotation(string type, string text, int startIndex, int endIndex, IDictionary serializedAdditionalRawData, InternalMessageTextFilePathDetails internalDetails) : base(type, text, startIndex, endIndex, serializedAdditionalRawData) + /// The first text index associated with this text annotation. + /// The last text index associated with this text annotation. + internal MessageTextFilePathAnnotation(string type, string text, IDictionary serializedAdditionalRawData, InternalMessageTextFilePathDetails internalDetails, int? startIndex, int? endIndex) : base(type, text, serializedAdditionalRawData) { InternalDetails = internalDetails; + StartIndex = startIndex; + EndIndex = endIndex; } /// Initializes a new instance of for deserialization. internal MessageTextFilePathAnnotation() { } + /// The first text index associated with this text annotation. + public int? StartIndex { get; set; } + /// The last text index associated with this text annotation. + public int? EndIndex { get; set; } } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIFile.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIFile.Serialization.cs index 7bb6222023a9..4a2eb30a8a00 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIFile.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIFile.Serialization.cs @@ -46,6 +46,16 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteNumberValue(CreatedAt, "U"); writer.WritePropertyName("purpose"u8); writer.WriteStringValue(Purpose.ToString()); + if (Optional.IsDefined(Status)) + { + writer.WritePropertyName("status"u8); + writer.WriteStringValue(Status.Value.ToString()); + } + if (Optional.IsDefined(StatusDetails)) + { + writer.WritePropertyName("status_details"u8); + writer.WriteStringValue(StatusDetails); + } if (options.Format != "W" && _serializedAdditionalRawData != null) { foreach (var item in _serializedAdditionalRawData) @@ -89,6 +99,8 @@ internal static OpenAIFile DeserializeOpenAIFile(JsonElement element, ModelReade string filename = default; DateTimeOffset createdAt = default; OpenAIFilePurpose purpose = default; + FileState? status = default; + string statusDetails = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); foreach (var property in element.EnumerateObject()) @@ -123,6 +135,20 @@ internal static OpenAIFile DeserializeOpenAIFile(JsonElement element, ModelReade purpose = new OpenAIFilePurpose(property.Value.GetString()); continue; } + if (property.NameEquals("status"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + status = new FileState(property.Value.GetString()); + continue; + } + if (property.NameEquals("status_details"u8)) + { + statusDetails = property.Value.GetString(); + continue; + } if (options.Format != "W") { rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); @@ -136,6 +162,8 @@ internal static OpenAIFile DeserializeOpenAIFile(JsonElement element, ModelReade filename, createdAt, purpose, + status, + statusDetails, serializedAdditionalRawData); } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIFile.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIFile.cs index 318f90d4c5a5..29264237fe5a 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIFile.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIFile.cs @@ -71,8 +71,10 @@ internal OpenAIFile(string id, int size, string filename, DateTimeOffset created /// The name of the file. /// The Unix timestamp, in seconds, representing when this object was created. /// The intended purpose of a file. + /// The state of the file. This field is available in Azure OpenAI only. + /// The error message with details in case processing of this file failed. This field is available in Azure OpenAI only. /// Keeps track of any properties unknown to the library. - internal OpenAIFile(string @object, string id, int size, string filename, DateTimeOffset createdAt, OpenAIFilePurpose purpose, IDictionary serializedAdditionalRawData) + internal OpenAIFile(string @object, string id, int size, string filename, DateTimeOffset createdAt, OpenAIFilePurpose purpose, FileState? status, string statusDetails, IDictionary serializedAdditionalRawData) { Object = @object; Id = id; @@ -80,6 +82,8 @@ internal OpenAIFile(string @object, string id, int size, string filename, DateTi Filename = filename; CreatedAt = createdAt; Purpose = purpose; + Status = status; + StatusDetails = statusDetails; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -98,5 +102,9 @@ internal OpenAIFile() public DateTimeOffset CreatedAt { get; } /// The intended purpose of a file. public OpenAIFilePurpose Purpose { get; } + /// The state of the file. This field is available in Azure OpenAI only. + public FileState? Status { get; } + /// The error message with details in case processing of this file failed. This field is available in Azure OpenAI only. + public string StatusDetails { get; } } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIFilePurpose.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIFilePurpose.cs index 50d531cac562..e58119d1b591 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIFilePurpose.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIFilePurpose.cs @@ -26,6 +26,9 @@ public OpenAIFilePurpose(string value) private const string FineTuneResultsValue = "fine-tune-results"; private const string AssistantsValue = "assistants"; private const string AssistantsOutputValue = "assistants_output"; + private const string BatchValue = "batch"; + private const string BatchOutputValue = "batch_output"; + private const string VisionValue = "vision"; /// Indicates a file is used for fine tuning input. public static OpenAIFilePurpose FineTune { get; } = new OpenAIFilePurpose(FineTuneValue); @@ -35,6 +38,12 @@ public OpenAIFilePurpose(string value) public static OpenAIFilePurpose Assistants { get; } = new OpenAIFilePurpose(AssistantsValue); /// Indicates a file is used as output by assistants. public static OpenAIFilePurpose AssistantsOutput { get; } = new OpenAIFilePurpose(AssistantsOutputValue); + /// Indicates a file is used as input to . + public static OpenAIFilePurpose Batch { get; } = new OpenAIFilePurpose(BatchValue); + /// Indicates a file is used as output by a vector store batch operation. + public static OpenAIFilePurpose BatchOutput { get; } = new OpenAIFilePurpose(BatchOutputValue); + /// Indicates a file is used as input to a vision operation. + public static OpenAIFilePurpose Vision { get; } = new OpenAIFilePurpose(VisionValue); /// Determines if two values are the same. public static bool operator ==(OpenAIFilePurpose left, OpenAIFilePurpose right) => left.Equals(right); /// Determines if two values are not the same. diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfAssistantFileObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfAssistantFileObject.cs deleted file mode 100644 index 1a72c0020e88..000000000000 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfAssistantFileObject.cs +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using System.ComponentModel; - -namespace Azure.AI.OpenAI.Assistants -{ - /// The OpenAIPageableListOfAssistantFile_object. - internal readonly partial struct OpenAIPageableListOfAssistantFileObject : IEquatable - { - private readonly string _value; - - /// Initializes a new instance of . - /// is null. - public OpenAIPageableListOfAssistantFileObject(string value) - { - _value = value ?? throw new ArgumentNullException(nameof(value)); - } - - private const string ListValue = "list"; - - /// list. - public static OpenAIPageableListOfAssistantFileObject List { get; } = new OpenAIPageableListOfAssistantFileObject(ListValue); - /// Determines if two values are the same. - public static bool operator ==(OpenAIPageableListOfAssistantFileObject left, OpenAIPageableListOfAssistantFileObject right) => left.Equals(right); - /// Determines if two values are not the same. - public static bool operator !=(OpenAIPageableListOfAssistantFileObject left, OpenAIPageableListOfAssistantFileObject right) => !left.Equals(right); - /// Converts a to a . - public static implicit operator OpenAIPageableListOfAssistantFileObject(string value) => new OpenAIPageableListOfAssistantFileObject(value); - - /// - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is OpenAIPageableListOfAssistantFileObject other && Equals(other); - /// - public bool Equals(OpenAIPageableListOfAssistantFileObject 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalOpenAIPageableListOfMessageFile.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStore.Serialization.cs similarity index 66% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalOpenAIPageableListOfMessageFile.Serialization.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStore.Serialization.cs index 0f7226e4395b..f7cc560e9ff4 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalOpenAIPageableListOfMessageFile.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStore.Serialization.cs @@ -13,11 +13,11 @@ namespace Azure.AI.OpenAI.Assistants { - internal partial class InternalOpenAIPageableListOfMessageFile : IUtf8JsonSerializable, IJsonModel + public partial class OpenAIPageableListOfVectorStore : IUtf8JsonSerializable, IJsonModel { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); - void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) { writer.WriteStartObject(); JsonModelWriteCore(writer, options); @@ -28,10 +28,10 @@ void IJsonModel.Write(Utf8JsonWriter wr /// 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; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(InternalOpenAIPageableListOfMessageFile)} does not support writing '{format}' format."); + throw new FormatException($"The model {nameof(OpenAIPageableListOfVectorStore)} does not support writing '{format}' format."); } writer.WritePropertyName("object"u8); @@ -66,19 +66,19 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } } - InternalOpenAIPageableListOfMessageFile IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + OpenAIPageableListOfVectorStore IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(InternalOpenAIPageableListOfMessageFile)} does not support reading '{format}' format."); + throw new FormatException($"The model {nameof(OpenAIPageableListOfVectorStore)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return DeserializeInternalOpenAIPageableListOfMessageFile(document.RootElement, options); + return DeserializeOpenAIPageableListOfVectorStore(document.RootElement, options); } - internal static InternalOpenAIPageableListOfMessageFile DeserializeInternalOpenAIPageableListOfMessageFile(JsonElement element, ModelReaderWriterOptions options = null) + internal static OpenAIPageableListOfVectorStore DeserializeOpenAIPageableListOfVectorStore(JsonElement element, ModelReaderWriterOptions options = null) { options ??= ModelSerializationExtensions.WireOptions; @@ -86,8 +86,8 @@ internal static InternalOpenAIPageableListOfMessageFile DeserializeInternalOpenA { return null; } - OpenAIPageableListOfMessageFileObject @object = default; - IReadOnlyList data = default; + OpenAIPageableListOfVectorStoreObject @object = default; + IReadOnlyList data = default; string firstId = default; string lastId = default; bool hasMore = default; @@ -97,15 +97,15 @@ internal static InternalOpenAIPageableListOfMessageFile DeserializeInternalOpenA { if (property.NameEquals("object"u8)) { - @object = new OpenAIPageableListOfMessageFileObject(property.Value.GetString()); + @object = new OpenAIPageableListOfVectorStoreObject(property.Value.GetString()); continue; } if (property.NameEquals("data"u8)) { - List array = new List(); + List array = new List(); foreach (var item in property.Value.EnumerateArray()) { - array.Add(MessageFile.DeserializeMessageFile(item, options)); + array.Add(VectorStore.DeserializeVectorStore(item, options)); } data = array; continue; @@ -131,7 +131,7 @@ internal static InternalOpenAIPageableListOfMessageFile DeserializeInternalOpenA } } serializedAdditionalRawData = rawDataDictionary; - return new InternalOpenAIPageableListOfMessageFile( + return new OpenAIPageableListOfVectorStore( @object, data, firstId, @@ -140,43 +140,43 @@ internal static InternalOpenAIPageableListOfMessageFile DeserializeInternalOpenA serializedAdditionalRawData); } - BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + 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(InternalOpenAIPageableListOfMessageFile)} does not support writing '{options.Format}' format."); + throw new FormatException($"The model {nameof(OpenAIPageableListOfVectorStore)} does not support writing '{options.Format}' format."); } } - InternalOpenAIPageableListOfMessageFile IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + OpenAIPageableListOfVectorStore IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; switch (format) { case "J": { using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeInternalOpenAIPageableListOfMessageFile(document.RootElement, options); + return DeserializeOpenAIPageableListOfVectorStore(document.RootElement, options); } default: - throw new FormatException($"The model {nameof(InternalOpenAIPageableListOfMessageFile)} does not support reading '{options.Format}' format."); + throw new FormatException($"The model {nameof(OpenAIPageableListOfVectorStore)} does not support reading '{options.Format}' format."); } } - string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; /// Deserializes the model from a raw response. /// The response to deserialize the model from. - internal static InternalOpenAIPageableListOfMessageFile FromResponse(Response response) + internal static OpenAIPageableListOfVectorStore FromResponse(Response response) { using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeInternalOpenAIPageableListOfMessageFile(document.RootElement); + return DeserializeOpenAIPageableListOfVectorStore(document.RootElement); } /// Convert into a . diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalOpenAIPageableListOfAssistantFile.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStore.cs similarity index 78% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalOpenAIPageableListOfAssistantFile.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStore.cs index 7b5f1581bf67..1cfa1fd0b07d 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalOpenAIPageableListOfAssistantFile.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStore.cs @@ -12,7 +12,7 @@ namespace Azure.AI.OpenAI.Assistants { /// The response data for a requested list of items. - internal partial class InternalOpenAIPageableListOfAssistantFile + public partial class OpenAIPageableListOfVectorStore { /// /// Keeps track of any properties unknown to the library. @@ -46,13 +46,13 @@ internal partial class InternalOpenAIPageableListOfAssistantFile /// private IDictionary _serializedAdditionalRawData; - /// Initializes a new instance of . + /// Initializes a new instance of . /// The requested list of items. /// The first ID represented in this list. /// The last ID represented in this list. /// A value indicating whether there are additional values available not captured in this list. /// , or is null. - internal InternalOpenAIPageableListOfAssistantFile(IEnumerable data, string firstId, string lastId, bool hasMore) + internal OpenAIPageableListOfVectorStore(IEnumerable data, string firstId, string lastId, bool hasMore) { Argument.AssertNotNull(data, nameof(data)); Argument.AssertNotNull(firstId, nameof(firstId)); @@ -64,14 +64,14 @@ internal InternalOpenAIPageableListOfAssistantFile(IEnumerable da HasMore = hasMore; } - /// Initializes a new instance of . + /// Initializes a new instance of . /// The object type, which is always list. /// The requested list of items. /// The first ID represented in this list. /// The last ID represented in this list. /// A value indicating whether there are additional values available not captured in this list. /// Keeps track of any properties unknown to the library. - internal InternalOpenAIPageableListOfAssistantFile(OpenAIPageableListOfAssistantFileObject @object, IReadOnlyList data, string firstId, string lastId, bool hasMore, IDictionary serializedAdditionalRawData) + internal OpenAIPageableListOfVectorStore(OpenAIPageableListOfVectorStoreObject @object, IReadOnlyList data, string firstId, string lastId, bool hasMore, IDictionary serializedAdditionalRawData) { Object = @object; Data = data; @@ -81,16 +81,16 @@ internal InternalOpenAIPageableListOfAssistantFile(OpenAIPageableListOfAssistant _serializedAdditionalRawData = serializedAdditionalRawData; } - /// Initializes a new instance of for deserialization. - internal InternalOpenAIPageableListOfAssistantFile() + /// Initializes a new instance of for deserialization. + internal OpenAIPageableListOfVectorStore() { } /// The object type, which is always list. - public OpenAIPageableListOfAssistantFileObject Object { get; } = OpenAIPageableListOfAssistantFileObject.List; + public OpenAIPageableListOfVectorStoreObject Object { get; } = OpenAIPageableListOfVectorStoreObject.List; /// The requested list of items. - public IReadOnlyList Data { get; } + public IReadOnlyList Data { get; } /// The first ID represented in this list. public string FirstId { get; } /// The last ID represented in this list. diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalOpenAIPageableListOfAssistantFile.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStoreFile.Serialization.cs similarity index 65% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalOpenAIPageableListOfAssistantFile.Serialization.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStoreFile.Serialization.cs index 1408fa34d5f6..d3ad52c01a1f 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalOpenAIPageableListOfAssistantFile.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStoreFile.Serialization.cs @@ -13,11 +13,11 @@ namespace Azure.AI.OpenAI.Assistants { - internal partial class InternalOpenAIPageableListOfAssistantFile : IUtf8JsonSerializable, IJsonModel + public partial class OpenAIPageableListOfVectorStoreFile : IUtf8JsonSerializable, IJsonModel { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); - void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) { writer.WriteStartObject(); JsonModelWriteCore(writer, options); @@ -28,10 +28,10 @@ void IJsonModel.Write(Utf8JsonWriter /// 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; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(InternalOpenAIPageableListOfAssistantFile)} does not support writing '{format}' format."); + throw new FormatException($"The model {nameof(OpenAIPageableListOfVectorStoreFile)} does not support writing '{format}' format."); } writer.WritePropertyName("object"u8); @@ -66,19 +66,19 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } } - InternalOpenAIPageableListOfAssistantFile IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + OpenAIPageableListOfVectorStoreFile IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(InternalOpenAIPageableListOfAssistantFile)} does not support reading '{format}' format."); + throw new FormatException($"The model {nameof(OpenAIPageableListOfVectorStoreFile)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return DeserializeInternalOpenAIPageableListOfAssistantFile(document.RootElement, options); + return DeserializeOpenAIPageableListOfVectorStoreFile(document.RootElement, options); } - internal static InternalOpenAIPageableListOfAssistantFile DeserializeInternalOpenAIPageableListOfAssistantFile(JsonElement element, ModelReaderWriterOptions options = null) + internal static OpenAIPageableListOfVectorStoreFile DeserializeOpenAIPageableListOfVectorStoreFile(JsonElement element, ModelReaderWriterOptions options = null) { options ??= ModelSerializationExtensions.WireOptions; @@ -86,8 +86,8 @@ internal static InternalOpenAIPageableListOfAssistantFile DeserializeInternalOpe { return null; } - OpenAIPageableListOfAssistantFileObject @object = default; - IReadOnlyList data = default; + OpenAIPageableListOfVectorStoreFileObject @object = default; + IReadOnlyList data = default; string firstId = default; string lastId = default; bool hasMore = default; @@ -97,15 +97,15 @@ internal static InternalOpenAIPageableListOfAssistantFile DeserializeInternalOpe { if (property.NameEquals("object"u8)) { - @object = new OpenAIPageableListOfAssistantFileObject(property.Value.GetString()); + @object = new OpenAIPageableListOfVectorStoreFileObject(property.Value.GetString()); continue; } if (property.NameEquals("data"u8)) { - List array = new List(); + List array = new List(); foreach (var item in property.Value.EnumerateArray()) { - array.Add(AssistantFile.DeserializeAssistantFile(item, options)); + array.Add(VectorStoreFile.DeserializeVectorStoreFile(item, options)); } data = array; continue; @@ -131,7 +131,7 @@ internal static InternalOpenAIPageableListOfAssistantFile DeserializeInternalOpe } } serializedAdditionalRawData = rawDataDictionary; - return new InternalOpenAIPageableListOfAssistantFile( + return new OpenAIPageableListOfVectorStoreFile( @object, data, firstId, @@ -140,43 +140,43 @@ internal static InternalOpenAIPageableListOfAssistantFile DeserializeInternalOpe serializedAdditionalRawData); } - BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + 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(InternalOpenAIPageableListOfAssistantFile)} does not support writing '{options.Format}' format."); + throw new FormatException($"The model {nameof(OpenAIPageableListOfVectorStoreFile)} does not support writing '{options.Format}' format."); } } - InternalOpenAIPageableListOfAssistantFile IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + OpenAIPageableListOfVectorStoreFile IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; switch (format) { case "J": { using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeInternalOpenAIPageableListOfAssistantFile(document.RootElement, options); + return DeserializeOpenAIPageableListOfVectorStoreFile(document.RootElement, options); } default: - throw new FormatException($"The model {nameof(InternalOpenAIPageableListOfAssistantFile)} does not support reading '{options.Format}' format."); + throw new FormatException($"The model {nameof(OpenAIPageableListOfVectorStoreFile)} does not support reading '{options.Format}' format."); } } - string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; /// Deserializes the model from a raw response. /// The response to deserialize the model from. - internal static InternalOpenAIPageableListOfAssistantFile FromResponse(Response response) + internal static OpenAIPageableListOfVectorStoreFile FromResponse(Response response) { using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeInternalOpenAIPageableListOfAssistantFile(document.RootElement); + return DeserializeOpenAIPageableListOfVectorStoreFile(document.RootElement); } /// Convert into a . diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalOpenAIPageableListOfMessageFile.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStoreFile.cs similarity index 78% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalOpenAIPageableListOfMessageFile.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStoreFile.cs index 591f029940a1..8f4e487d59ad 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalOpenAIPageableListOfMessageFile.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStoreFile.cs @@ -12,7 +12,7 @@ namespace Azure.AI.OpenAI.Assistants { /// The response data for a requested list of items. - internal partial class InternalOpenAIPageableListOfMessageFile + public partial class OpenAIPageableListOfVectorStoreFile { /// /// Keeps track of any properties unknown to the library. @@ -46,13 +46,13 @@ internal partial class InternalOpenAIPageableListOfMessageFile /// private IDictionary _serializedAdditionalRawData; - /// Initializes a new instance of . + /// Initializes a new instance of . /// The requested list of items. /// The first ID represented in this list. /// The last ID represented in this list. /// A value indicating whether there are additional values available not captured in this list. /// , or is null. - internal InternalOpenAIPageableListOfMessageFile(IEnumerable data, string firstId, string lastId, bool hasMore) + internal OpenAIPageableListOfVectorStoreFile(IEnumerable data, string firstId, string lastId, bool hasMore) { Argument.AssertNotNull(data, nameof(data)); Argument.AssertNotNull(firstId, nameof(firstId)); @@ -64,14 +64,14 @@ internal InternalOpenAIPageableListOfMessageFile(IEnumerable data, HasMore = hasMore; } - /// Initializes a new instance of . + /// Initializes a new instance of . /// The object type, which is always list. /// The requested list of items. /// The first ID represented in this list. /// The last ID represented in this list. /// A value indicating whether there are additional values available not captured in this list. /// Keeps track of any properties unknown to the library. - internal InternalOpenAIPageableListOfMessageFile(OpenAIPageableListOfMessageFileObject @object, IReadOnlyList data, string firstId, string lastId, bool hasMore, IDictionary serializedAdditionalRawData) + internal OpenAIPageableListOfVectorStoreFile(OpenAIPageableListOfVectorStoreFileObject @object, IReadOnlyList data, string firstId, string lastId, bool hasMore, IDictionary serializedAdditionalRawData) { Object = @object; Data = data; @@ -81,16 +81,16 @@ internal InternalOpenAIPageableListOfMessageFile(OpenAIPageableListOfMessageFile _serializedAdditionalRawData = serializedAdditionalRawData; } - /// Initializes a new instance of for deserialization. - internal InternalOpenAIPageableListOfMessageFile() + /// Initializes a new instance of for deserialization. + internal OpenAIPageableListOfVectorStoreFile() { } /// The object type, which is always list. - public OpenAIPageableListOfMessageFileObject Object { get; } = OpenAIPageableListOfMessageFileObject.List; + public OpenAIPageableListOfVectorStoreFileObject Object { get; } = OpenAIPageableListOfVectorStoreFileObject.List; /// The requested list of items. - public IReadOnlyList Data { get; } + public IReadOnlyList Data { get; } /// The first ID represented in this list. public string FirstId { get; } /// The last ID represented in this list. diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStoreFileObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStoreFileObject.cs new file mode 100644 index 000000000000..1c678fe63a61 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStoreFileObject.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.AI.OpenAI.Assistants +{ + /// The OpenAIPageableListOfVectorStoreFile_object. + public readonly partial struct OpenAIPageableListOfVectorStoreFileObject : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public OpenAIPageableListOfVectorStoreFileObject(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string ListValue = "list"; + + /// list. + public static OpenAIPageableListOfVectorStoreFileObject List { get; } = new OpenAIPageableListOfVectorStoreFileObject(ListValue); + /// Determines if two values are the same. + public static bool operator ==(OpenAIPageableListOfVectorStoreFileObject left, OpenAIPageableListOfVectorStoreFileObject right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(OpenAIPageableListOfVectorStoreFileObject left, OpenAIPageableListOfVectorStoreFileObject right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator OpenAIPageableListOfVectorStoreFileObject(string value) => new OpenAIPageableListOfVectorStoreFileObject(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is OpenAIPageableListOfVectorStoreFileObject other && Equals(other); + /// + public bool Equals(OpenAIPageableListOfVectorStoreFileObject 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfMessageFileObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStoreObject.cs similarity index 55% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfMessageFileObject.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStoreObject.cs index 9993d3b6fdec..38b2253eef2e 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfMessageFileObject.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/OpenAIPageableListOfVectorStoreObject.cs @@ -10,14 +10,14 @@ namespace Azure.AI.OpenAI.Assistants { - /// The OpenAIPageableListOfMessageFile_object. - internal readonly partial struct OpenAIPageableListOfMessageFileObject : IEquatable + /// The OpenAIPageableListOfVectorStore_object. + public readonly partial struct OpenAIPageableListOfVectorStoreObject : IEquatable { private readonly string _value; - /// Initializes a new instance of . + /// Initializes a new instance of . /// is null. - public OpenAIPageableListOfMessageFileObject(string value) + public OpenAIPageableListOfVectorStoreObject(string value) { _value = value ?? throw new ArgumentNullException(nameof(value)); } @@ -25,19 +25,19 @@ public OpenAIPageableListOfMessageFileObject(string value) private const string ListValue = "list"; /// list. - public static OpenAIPageableListOfMessageFileObject List { get; } = new OpenAIPageableListOfMessageFileObject(ListValue); - /// Determines if two values are the same. - public static bool operator ==(OpenAIPageableListOfMessageFileObject left, OpenAIPageableListOfMessageFileObject right) => left.Equals(right); - /// Determines if two values are not the same. - public static bool operator !=(OpenAIPageableListOfMessageFileObject left, OpenAIPageableListOfMessageFileObject right) => !left.Equals(right); - /// Converts a to a . - public static implicit operator OpenAIPageableListOfMessageFileObject(string value) => new OpenAIPageableListOfMessageFileObject(value); + public static OpenAIPageableListOfVectorStoreObject List { get; } = new OpenAIPageableListOfVectorStoreObject(ListValue); + /// Determines if two values are the same. + public static bool operator ==(OpenAIPageableListOfVectorStoreObject left, OpenAIPageableListOfVectorStoreObject right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(OpenAIPageableListOfVectorStoreObject left, OpenAIPageableListOfVectorStoreObject right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator OpenAIPageableListOfVectorStoreObject(string value) => new OpenAIPageableListOfVectorStoreObject(value); /// [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is OpenAIPageableListOfMessageFileObject other && Equals(other); + public override bool Equals(object obj) => obj is OpenAIPageableListOfVectorStoreObject other && Equals(other); /// - public bool Equals(OpenAIPageableListOfMessageFileObject other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + public bool Equals(OpenAIPageableListOfVectorStoreObject other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); /// [EditorBrowsable(EditorBrowsableState.Never)] diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RetrievalToolDefinition.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RetrievalToolDefinition.cs deleted file mode 100644 index f2f39855b348..000000000000 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RetrievalToolDefinition.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using System.Collections.Generic; - -namespace Azure.AI.OpenAI.Assistants -{ - /// The input definition information for a retrieval tool as used to configure an assistant. - public partial class RetrievalToolDefinition : ToolDefinition - { - /// Initializes a new instance of . - public RetrievalToolDefinition() - { - Type = "retrieval"; - } - - /// Initializes a new instance of . - /// The object type. - /// Keeps track of any properties unknown to the library. - internal RetrievalToolDefinition(string type, IDictionary serializedAdditionalRawData) : base(type, serializedAdditionalRawData) - { - } - } -} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunCompletionUsage.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunCompletionUsage.Serialization.cs new file mode 100644 index 000000000000..282fd568dd43 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunCompletionUsage.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.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + public partial class RunCompletionUsage : 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(RunCompletionUsage)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("completion_tokens"u8); + writer.WriteNumberValue(CompletionTokens); + writer.WritePropertyName("prompt_tokens"u8); + writer.WriteNumberValue(PromptTokens); + writer.WritePropertyName("total_tokens"u8); + writer.WriteNumberValue(TotalTokens); + 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 + } + } + } + + RunCompletionUsage 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(RunCompletionUsage)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunCompletionUsage(document.RootElement, options); + } + + internal static RunCompletionUsage DeserializeRunCompletionUsage(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + long completionTokens = default; + long promptTokens = default; + long totalTokens = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("completion_tokens"u8)) + { + completionTokens = property.Value.GetInt64(); + continue; + } + if (property.NameEquals("prompt_tokens"u8)) + { + promptTokens = property.Value.GetInt64(); + continue; + } + if (property.NameEquals("total_tokens"u8)) + { + totalTokens = property.Value.GetInt64(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RunCompletionUsage(completionTokens, promptTokens, totalTokens, 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(RunCompletionUsage)} does not support writing '{options.Format}' format."); + } + } + + RunCompletionUsage 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 DeserializeRunCompletionUsage(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunCompletionUsage)} 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 RunCompletionUsage FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunCompletionUsage(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunCompletionUsage.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunCompletionUsage.cs new file mode 100644 index 000000000000..2dfd3c2ee2c8 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunCompletionUsage.cs @@ -0,0 +1,84 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + public partial class RunCompletionUsage + { + /// + /// 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 . + /// Number of completion tokens used over the course of the run. + /// Number of prompt tokens used over the course of the run. + /// Total number of tokens used (prompt + completion). + internal RunCompletionUsage(long completionTokens, long promptTokens, long totalTokens) + { + CompletionTokens = completionTokens; + PromptTokens = promptTokens; + TotalTokens = totalTokens; + } + + /// Initializes a new instance of . + /// Number of completion tokens used over the course of the run. + /// Number of prompt tokens used over the course of the run. + /// Total number of tokens used (prompt + completion). + /// Keeps track of any properties unknown to the library. + internal RunCompletionUsage(long completionTokens, long promptTokens, long totalTokens, IDictionary serializedAdditionalRawData) + { + CompletionTokens = completionTokens; + PromptTokens = promptTokens; + TotalTokens = totalTokens; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal RunCompletionUsage() + { + } + + /// Number of completion tokens used over the course of the run. + public long CompletionTokens { get; } + /// Number of prompt tokens used over the course of the run. + public long PromptTokens { get; } + /// Total number of tokens used (prompt + completion). + public long TotalTokens { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunIncludes.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunIncludes.cs new file mode 100644 index 000000000000..5e0e0daee070 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunIncludes.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.AI.OpenAI.Assistants +{ + /// Values to for the includes parameter in the create run operation. + public readonly partial struct RunIncludes : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public RunIncludes(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string FileSearchContentValue = "step_details.tool_calls[*].file_search.results[*].content"; + + /// Fetch the file search result content. + public static RunIncludes FileSearchContent { get; } = new RunIncludes(FileSearchContentValue); + /// Determines if two values are the same. + public static bool operator ==(RunIncludes left, RunIncludes right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(RunIncludes left, RunIncludes right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator RunIncludes(string value) => new RunIncludes(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is RunIncludes other && Equals(other); + /// + public bool Equals(RunIncludes 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStep.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStep.Serialization.cs index 3efdb79c0c6a..25e17327254c 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStep.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStep.Serialization.cs @@ -97,6 +97,18 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit { writer.WriteNull("failed_at"); } + if (Optional.IsDefined(Usage)) + { + if (Usage != null) + { + writer.WritePropertyName("usage"u8); + writer.WriteObjectValue(Usage, options); + } + else + { + writer.WriteNull("usage"); + } + } if (Metadata != null && Optional.IsCollectionDefined(Metadata)) { writer.WritePropertyName("metadata"u8); @@ -163,6 +175,7 @@ internal static RunStep DeserializeRunStep(JsonElement element, ModelReaderWrite DateTimeOffset? completedAt = default; DateTimeOffset? cancelledAt = default; DateTimeOffset? failedAt = default; + RunStepCompletionUsage usage = default; IReadOnlyDictionary metadata = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); @@ -243,6 +256,16 @@ internal static RunStep DeserializeRunStep(JsonElement element, ModelReaderWrite DeserializeNullableDateTimeOffset(property, ref failedAt); continue; } + if (property.NameEquals("usage"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + usage = null; + continue; + } + usage = RunStepCompletionUsage.DeserializeRunStepCompletionUsage(property.Value, options); + continue; + } if (property.NameEquals("metadata"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) @@ -279,6 +302,7 @@ internal static RunStep DeserializeRunStep(JsonElement element, ModelReaderWrite completedAt, cancelledAt, failedAt, + usage, metadata, serializedAdditionalRawData); } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStep.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStep.cs index 9d8d21d55457..3b622f261eb6 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStep.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStep.cs @@ -108,9 +108,10 @@ internal RunStep(string id, RunStepType type, string assistantId, string threadI /// The Unix timestamp, in seconds, representing when this completed. /// The Unix timestamp, in seconds, representing when this was cancelled. /// The Unix timestamp, in seconds, representing when this failed. + /// Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// Keeps track of any properties unknown to the library. - internal RunStep(string id, string @object, RunStepType type, string assistantId, string threadId, string runId, RunStepStatus status, RunStepDetails stepDetails, RunStepError lastError, DateTimeOffset createdAt, DateTimeOffset? expiredAt, DateTimeOffset? completedAt, DateTimeOffset? cancelledAt, DateTimeOffset? failedAt, IReadOnlyDictionary metadata, IDictionary serializedAdditionalRawData) + internal RunStep(string id, string @object, RunStepType type, string assistantId, string threadId, string runId, RunStepStatus status, RunStepDetails stepDetails, RunStepError lastError, DateTimeOffset createdAt, DateTimeOffset? expiredAt, DateTimeOffset? completedAt, DateTimeOffset? cancelledAt, DateTimeOffset? failedAt, RunStepCompletionUsage usage, IReadOnlyDictionary metadata, IDictionary serializedAdditionalRawData) { Id = id; Object = @object; @@ -126,6 +127,7 @@ internal RunStep(string id, string @object, RunStepType type, string assistantId CompletedAt = completedAt; CancelledAt = cancelledAt; FailedAt = failedAt; + Usage = usage; Metadata = metadata; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -166,6 +168,8 @@ internal RunStep() public DateTimeOffset? CancelledAt { get; } /// The Unix timestamp, in seconds, representing when this failed. public DateTimeOffset? FailedAt { get; } + /// Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. + public RunStepCompletionUsage Usage { get; } /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. public IReadOnlyDictionary Metadata { get; } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepCompletionUsage.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepCompletionUsage.Serialization.cs new file mode 100644 index 000000000000..1d6631a4b731 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepCompletionUsage.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.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + public partial class RunStepCompletionUsage : 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(RunStepCompletionUsage)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("completion_tokens"u8); + writer.WriteNumberValue(CompletionTokens); + writer.WritePropertyName("prompt_tokens"u8); + writer.WriteNumberValue(PromptTokens); + writer.WritePropertyName("total_tokens"u8); + writer.WriteNumberValue(TotalTokens); + 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 + } + } + } + + RunStepCompletionUsage 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(RunStepCompletionUsage)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepCompletionUsage(document.RootElement, options); + } + + internal static RunStepCompletionUsage DeserializeRunStepCompletionUsage(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + long completionTokens = default; + long promptTokens = default; + long totalTokens = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("completion_tokens"u8)) + { + completionTokens = property.Value.GetInt64(); + continue; + } + if (property.NameEquals("prompt_tokens"u8)) + { + promptTokens = property.Value.GetInt64(); + continue; + } + if (property.NameEquals("total_tokens"u8)) + { + totalTokens = property.Value.GetInt64(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RunStepCompletionUsage(completionTokens, promptTokens, totalTokens, 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(RunStepCompletionUsage)} does not support writing '{options.Format}' format."); + } + } + + RunStepCompletionUsage 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 DeserializeRunStepCompletionUsage(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepCompletionUsage)} 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 RunStepCompletionUsage FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepCompletionUsage(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepCompletionUsage.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepCompletionUsage.cs new file mode 100644 index 000000000000..738d57f0df80 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepCompletionUsage.cs @@ -0,0 +1,84 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Usage statistics related to the run step. + public partial class RunStepCompletionUsage + { + /// + /// 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 . + /// Number of completion tokens used over the course of the run step. + /// Number of prompt tokens used over the course of the run step. + /// Total number of tokens used (prompt + completion). + internal RunStepCompletionUsage(long completionTokens, long promptTokens, long totalTokens) + { + CompletionTokens = completionTokens; + PromptTokens = promptTokens; + TotalTokens = totalTokens; + } + + /// Initializes a new instance of . + /// Number of completion tokens used over the course of the run step. + /// Number of prompt tokens used over the course of the run step. + /// Total number of tokens used (prompt + completion). + /// Keeps track of any properties unknown to the library. + internal RunStepCompletionUsage(long completionTokens, long promptTokens, long totalTokens, IDictionary serializedAdditionalRawData) + { + CompletionTokens = completionTokens; + PromptTokens = promptTokens; + TotalTokens = totalTokens; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal RunStepCompletionUsage() + { + } + + /// Number of completion tokens used over the course of the run step. + public long CompletionTokens { get; } + /// Number of prompt tokens used over the course of the run step. + public long PromptTokens { get; } + /// Total number of tokens used (prompt + completion). + public long TotalTokens { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDelta.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDelta.Serialization.cs new file mode 100644 index 000000000000..fbc756acda1b --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDelta.Serialization.cs @@ -0,0 +1,149 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class RunStepDelta : 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(RunStepDelta)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(StepDetails)) + { + writer.WritePropertyName("step_details"u8); + writer.WriteObjectValue(StepDetails, 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 + } + } + } + + RunStepDelta 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(RunStepDelta)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDelta(document.RootElement, options); + } + + internal static RunStepDelta DeserializeRunStepDelta(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + RunStepDeltaDetail stepDetails = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("step_details"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + stepDetails = RunStepDeltaDetail.DeserializeRunStepDeltaDetail(property.Value, options); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RunStepDelta(stepDetails, 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(RunStepDelta)} does not support writing '{options.Format}' format."); + } + } + + RunStepDelta 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 DeserializeRunStepDelta(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDelta)} 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 RunStepDelta FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepDelta(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDelta.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDelta.cs new file mode 100644 index 000000000000..9b28f292c68b --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDelta.cs @@ -0,0 +1,73 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Represents the delta payload in a streaming run step delta chunk. + public partial class RunStepDelta + { + /// + /// 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 RunStepDelta() + { + } + + /// Initializes a new instance of . + /// + /// The details of the run step. + /// 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 . + /// + /// Keeps track of any properties unknown to the library. + internal RunStepDelta(RunStepDeltaDetail stepDetails, IDictionary serializedAdditionalRawData) + { + StepDetails = stepDetails; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// + /// The details of the run step. + /// 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 RunStepDeltaDetail StepDetails { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaChunk.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaChunk.Serialization.cs new file mode 100644 index 000000000000..94cbacc1a0a3 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaChunk.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.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + public partial class RunStepDeltaChunk : 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(RunStepDeltaChunk)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("id"u8); + writer.WriteStringValue(Id); + writer.WritePropertyName("object"u8); + writer.WriteStringValue(Object.ToString()); + writer.WritePropertyName("delta"u8); + writer.WriteObjectValue(Delta, 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 + } + } + } + + RunStepDeltaChunk 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(RunStepDeltaChunk)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDeltaChunk(document.RootElement, options); + } + + internal static RunStepDeltaChunk DeserializeRunStepDeltaChunk(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string id = default; + RunStepDeltaChunkObject @object = default; + RunStepDelta delta = 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("object"u8)) + { + @object = new RunStepDeltaChunkObject(property.Value.GetString()); + continue; + } + if (property.NameEquals("delta"u8)) + { + delta = RunStepDelta.DeserializeRunStepDelta(property.Value, options); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RunStepDeltaChunk(id, @object, delta, 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(RunStepDeltaChunk)} does not support writing '{options.Format}' format."); + } + } + + RunStepDeltaChunk 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 DeserializeRunStepDeltaChunk(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDeltaChunk)} 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 RunStepDeltaChunk FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepDeltaChunk(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantFile.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaChunk.cs similarity index 51% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantFile.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaChunk.cs index 119a216efc63..b577dd0a9f7d 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantFile.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaChunk.cs @@ -10,8 +10,8 @@ namespace Azure.AI.OpenAI.Assistants { - /// Information about a file attached to an assistant, as used by tools that can read files. - public partial class AssistantFile + /// Represents a run step delta i.e. any changed fields on a run step during streaming. + public partial class RunStepDeltaChunk { /// /// Keeps track of any properties unknown to the library. @@ -45,47 +45,43 @@ public partial class AssistantFile /// private IDictionary _serializedAdditionalRawData; - /// Initializes a new instance of . - /// The identifier, which can be referenced in API endpoints. - /// The Unix timestamp, in seconds, representing when this object was created. - /// The assistant ID that the file is attached to. - /// or is null. - internal AssistantFile(string id, DateTimeOffset createdAt, string assistantId) + /// Initializes a new instance of . + /// The identifier of the run step, which can be referenced in API endpoints. + /// The delta containing the fields that have changed on the run step. + /// or is null. + internal RunStepDeltaChunk(string id, RunStepDelta delta) { Argument.AssertNotNull(id, nameof(id)); - Argument.AssertNotNull(assistantId, nameof(assistantId)); + Argument.AssertNotNull(delta, nameof(delta)); Id = id; - CreatedAt = createdAt; - AssistantId = assistantId; + Delta = delta; } - /// Initializes a new instance of . - /// The identifier, which can be referenced in API endpoints. - /// The object type, which is always 'assistant.file'. - /// The Unix timestamp, in seconds, representing when this object was created. - /// The assistant ID that the file is attached to. + /// Initializes a new instance of . + /// The identifier of the run step, which can be referenced in API endpoints. + /// The object type, which is always `thread.run.step.delta`. + /// The delta containing the fields that have changed on the run step. /// Keeps track of any properties unknown to the library. - internal AssistantFile(string id, string @object, DateTimeOffset createdAt, string assistantId, IDictionary serializedAdditionalRawData) + internal RunStepDeltaChunk(string id, RunStepDeltaChunkObject @object, RunStepDelta delta, IDictionary serializedAdditionalRawData) { Id = id; Object = @object; - CreatedAt = createdAt; - AssistantId = assistantId; + Delta = delta; _serializedAdditionalRawData = serializedAdditionalRawData; } - /// Initializes a new instance of for deserialization. - internal AssistantFile() + /// Initializes a new instance of for deserialization. + internal RunStepDeltaChunk() { } - /// The identifier, which can be referenced in API endpoints. + /// The identifier of the run step, which can be referenced in API endpoints. public string Id { get; } + /// The object type, which is always `thread.run.step.delta`. + public RunStepDeltaChunkObject Object { get; } = RunStepDeltaChunkObject.ThreadRunStepDelta; - /// The Unix timestamp, in seconds, representing when this object was created. - public DateTimeOffset CreatedAt { get; } - /// The assistant ID that the file is attached to. - public string AssistantId { get; } + /// The delta containing the fields that have changed on the run step. + public RunStepDelta Delta { get; } } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaChunkObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaChunkObject.cs new file mode 100644 index 000000000000..4cadb42a2b35 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaChunkObject.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.AI.OpenAI.Assistants +{ + /// The RunStepDeltaChunk_object. + public readonly partial struct RunStepDeltaChunkObject : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public RunStepDeltaChunkObject(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string ThreadRunStepDeltaValue = "thread.run.step.delta"; + + /// thread.run.step.delta. + public static RunStepDeltaChunkObject ThreadRunStepDelta { get; } = new RunStepDeltaChunkObject(ThreadRunStepDeltaValue); + /// Determines if two values are the same. + public static bool operator ==(RunStepDeltaChunkObject left, RunStepDeltaChunkObject right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(RunStepDeltaChunkObject left, RunStepDeltaChunkObject right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator RunStepDeltaChunkObject(string value) => new RunStepDeltaChunkObject(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is RunStepDeltaChunkObject other && Equals(other); + /// + public bool Equals(RunStepDeltaChunkObject 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterDetailItemObject.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterDetailItemObject.Serialization.cs new file mode 100644 index 000000000000..6c053796b8bb --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterDetailItemObject.Serialization.cs @@ -0,0 +1,170 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class RunStepDeltaCodeInterpreterDetailItemObject : 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(RunStepDeltaCodeInterpreterDetailItemObject)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(Input)) + { + writer.WritePropertyName("input"u8); + writer.WriteStringValue(Input); + } + if (Optional.IsCollectionDefined(Outputs)) + { + writer.WritePropertyName("outputs"u8); + writer.WriteStartArray(); + foreach (var item in Outputs) + { + 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 + } + } + } + + RunStepDeltaCodeInterpreterDetailItemObject 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(RunStepDeltaCodeInterpreterDetailItemObject)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDeltaCodeInterpreterDetailItemObject(document.RootElement, options); + } + + internal static RunStepDeltaCodeInterpreterDetailItemObject DeserializeRunStepDeltaCodeInterpreterDetailItemObject(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string input = default; + IReadOnlyList outputs = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("input"u8)) + { + input = property.Value.GetString(); + continue; + } + if (property.NameEquals("outputs"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(RunStepDeltaCodeInterpreterOutput.DeserializeRunStepDeltaCodeInterpreterOutput(item, options)); + } + outputs = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RunStepDeltaCodeInterpreterDetailItemObject(input, outputs ?? 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(RunStepDeltaCodeInterpreterDetailItemObject)} does not support writing '{options.Format}' format."); + } + } + + RunStepDeltaCodeInterpreterDetailItemObject 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 DeserializeRunStepDeltaCodeInterpreterDetailItemObject(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDeltaCodeInterpreterDetailItemObject)} 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 RunStepDeltaCodeInterpreterDetailItemObject FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepDeltaCodeInterpreterDetailItemObject(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterDetailItemObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterDetailItemObject.cs new file mode 100644 index 000000000000..d3a655d903d0 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterDetailItemObject.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.AI.OpenAI.Assistants +{ + /// Represents the Code Interpreter tool call data in a streaming run step's tool calls. + public partial class RunStepDeltaCodeInterpreterDetailItemObject + { + /// + /// 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 RunStepDeltaCodeInterpreterDetailItemObject() + { + Outputs = new ChangeTrackingList(); + } + + /// Initializes a new instance of . + /// The input into the Code Interpreter tool call. + /// + /// The outputs from the Code Interpreter tool call. Code Interpreter can output one or more + /// items, including text (`logs`) or images (`image`). Each of these are represented by a + /// different object type. + /// 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 . + /// + /// Keeps track of any properties unknown to the library. + internal RunStepDeltaCodeInterpreterDetailItemObject(string input, IReadOnlyList outputs, IDictionary serializedAdditionalRawData) + { + Input = input; + Outputs = outputs; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The input into the Code Interpreter tool call. + public string Input { get; } + /// + /// The outputs from the Code Interpreter tool call. Code Interpreter can output one or more + /// items, including text (`logs`) or images (`image`). Each of these are represented by a + /// different object type. + /// 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 IReadOnlyList Outputs { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterImageOutput.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterImageOutput.Serialization.cs new file mode 100644 index 000000000000..593618121d8d --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterImageOutput.Serialization.cs @@ -0,0 +1,147 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class RunStepDeltaCodeInterpreterImageOutput : 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(RunStepDeltaCodeInterpreterImageOutput)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Image)) + { + writer.WritePropertyName("image"u8); + writer.WriteObjectValue(Image, options); + } + } + + RunStepDeltaCodeInterpreterImageOutput 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(RunStepDeltaCodeInterpreterImageOutput)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDeltaCodeInterpreterImageOutput(document.RootElement, options); + } + + internal static RunStepDeltaCodeInterpreterImageOutput DeserializeRunStepDeltaCodeInterpreterImageOutput(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + RunStepDeltaCodeInterpreterImageOutputObject image = default; + int index = default; + string type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("image"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + image = RunStepDeltaCodeInterpreterImageOutputObject.DeserializeRunStepDeltaCodeInterpreterImageOutputObject(property.Value, options); + continue; + } + if (property.NameEquals("index"u8)) + { + index = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RunStepDeltaCodeInterpreterImageOutput(index, type, serializedAdditionalRawData, image); + } + + 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(RunStepDeltaCodeInterpreterImageOutput)} does not support writing '{options.Format}' format."); + } + } + + RunStepDeltaCodeInterpreterImageOutput 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 DeserializeRunStepDeltaCodeInterpreterImageOutput(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDeltaCodeInterpreterImageOutput)} 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 RunStepDeltaCodeInterpreterImageOutput FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepDeltaCodeInterpreterImageOutput(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterImageOutput.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterImageOutput.cs new file mode 100644 index 000000000000..0d80fac4887c --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterImageOutput.cs @@ -0,0 +1,41 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Represents an image output as produced the Code interpreter tool and as represented in a streaming run step's delta tool calls collection. + public partial class RunStepDeltaCodeInterpreterImageOutput : RunStepDeltaCodeInterpreterOutput + { + /// Initializes a new instance of . + /// The index of the output in the streaming run step tool call's Code Interpreter outputs array. + internal RunStepDeltaCodeInterpreterImageOutput(int index) : base(index) + { + Type = "image"; + } + + /// Initializes a new instance of . + /// The index of the output in the streaming run step tool call's Code Interpreter outputs array. + /// The type of the streaming run step tool call's Code Interpreter output. + /// Keeps track of any properties unknown to the library. + /// The image data for the Code Interpreter tool call output. + internal RunStepDeltaCodeInterpreterImageOutput(int index, string type, IDictionary serializedAdditionalRawData, RunStepDeltaCodeInterpreterImageOutputObject image) : base(index, type, serializedAdditionalRawData) + { + Image = image; + } + + /// Initializes a new instance of for deserialization. + internal RunStepDeltaCodeInterpreterImageOutput() + { + } + + /// The image data for the Code Interpreter tool call output. + public RunStepDeltaCodeInterpreterImageOutputObject Image { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterImageOutputObject.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterImageOutputObject.Serialization.cs new file mode 100644 index 000000000000..9d7feaabb742 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterImageOutputObject.Serialization.cs @@ -0,0 +1,145 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class RunStepDeltaCodeInterpreterImageOutputObject : 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(RunStepDeltaCodeInterpreterImageOutputObject)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(FileId)) + { + writer.WritePropertyName("file_id"u8); + writer.WriteStringValue(FileId); + } + 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 + } + } + } + + RunStepDeltaCodeInterpreterImageOutputObject 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(RunStepDeltaCodeInterpreterImageOutputObject)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDeltaCodeInterpreterImageOutputObject(document.RootElement, options); + } + + internal static RunStepDeltaCodeInterpreterImageOutputObject DeserializeRunStepDeltaCodeInterpreterImageOutputObject(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string fileId = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("file_id"u8)) + { + fileId = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RunStepDeltaCodeInterpreterImageOutputObject(fileId, 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(RunStepDeltaCodeInterpreterImageOutputObject)} does not support writing '{options.Format}' format."); + } + } + + RunStepDeltaCodeInterpreterImageOutputObject 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 DeserializeRunStepDeltaCodeInterpreterImageOutputObject(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDeltaCodeInterpreterImageOutputObject)} 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 RunStepDeltaCodeInterpreterImageOutputObject FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepDeltaCodeInterpreterImageOutputObject(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterImageOutputObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterImageOutputObject.cs new file mode 100644 index 000000000000..35c4bf8d080b --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterImageOutputObject.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.AI.OpenAI.Assistants +{ + /// Represents the data for a streaming run step's Code Interpreter tool call image output. + public partial class RunStepDeltaCodeInterpreterImageOutputObject + { + /// + /// 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 RunStepDeltaCodeInterpreterImageOutputObject() + { + } + + /// Initializes a new instance of . + /// The file ID for the image. + /// Keeps track of any properties unknown to the library. + internal RunStepDeltaCodeInterpreterImageOutputObject(string fileId, IDictionary serializedAdditionalRawData) + { + FileId = fileId; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The file ID for the image. + public string FileId { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterLogOutput.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterLogOutput.Serialization.cs new file mode 100644 index 000000000000..b92c96d6348f --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterLogOutput.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.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + public partial class RunStepDeltaCodeInterpreterLogOutput : 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(RunStepDeltaCodeInterpreterLogOutput)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Logs)) + { + writer.WritePropertyName("logs"u8); + writer.WriteStringValue(Logs); + } + } + + RunStepDeltaCodeInterpreterLogOutput 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(RunStepDeltaCodeInterpreterLogOutput)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDeltaCodeInterpreterLogOutput(document.RootElement, options); + } + + internal static RunStepDeltaCodeInterpreterLogOutput DeserializeRunStepDeltaCodeInterpreterLogOutput(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string logs = default; + int index = default; + string type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("logs"u8)) + { + logs = property.Value.GetString(); + continue; + } + if (property.NameEquals("index"u8)) + { + index = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RunStepDeltaCodeInterpreterLogOutput(index, type, serializedAdditionalRawData, logs); + } + + 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(RunStepDeltaCodeInterpreterLogOutput)} does not support writing '{options.Format}' format."); + } + } + + RunStepDeltaCodeInterpreterLogOutput 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 DeserializeRunStepDeltaCodeInterpreterLogOutput(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDeltaCodeInterpreterLogOutput)} 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 RunStepDeltaCodeInterpreterLogOutput FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepDeltaCodeInterpreterLogOutput(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterLogOutput.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterLogOutput.cs new file mode 100644 index 000000000000..96eaa7b38dc3 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterLogOutput.cs @@ -0,0 +1,41 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Represents a log output as produced by the Code Interpreter tool and as represented in a streaming run step's delta tool calls collection. + public partial class RunStepDeltaCodeInterpreterLogOutput : RunStepDeltaCodeInterpreterOutput + { + /// Initializes a new instance of . + /// The index of the output in the streaming run step tool call's Code Interpreter outputs array. + internal RunStepDeltaCodeInterpreterLogOutput(int index) : base(index) + { + Type = "logs"; + } + + /// Initializes a new instance of . + /// The index of the output in the streaming run step tool call's Code Interpreter outputs array. + /// The type of the streaming run step tool call's Code Interpreter output. + /// Keeps track of any properties unknown to the library. + /// The text output from the Code Interpreter tool call. + internal RunStepDeltaCodeInterpreterLogOutput(int index, string type, IDictionary serializedAdditionalRawData, string logs) : base(index, type, serializedAdditionalRawData) + { + Logs = logs; + } + + /// Initializes a new instance of for deserialization. + internal RunStepDeltaCodeInterpreterLogOutput() + { + } + + /// The text output from the Code Interpreter tool call. + public string Logs { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterOutput.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterOutput.Serialization.cs new file mode 100644 index 000000000000..f67acd16276c --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterOutput.Serialization.cs @@ -0,0 +1,136 @@ +// 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.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + [PersistableModelProxy(typeof(UnknownRunStepDeltaCodeInterpreterOutput))] + public partial class RunStepDeltaCodeInterpreterOutput : 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(RunStepDeltaCodeInterpreterOutput)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("index"u8); + writer.WriteNumberValue(Index); + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type); + 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 + } + } + } + + RunStepDeltaCodeInterpreterOutput 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(RunStepDeltaCodeInterpreterOutput)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDeltaCodeInterpreterOutput(document.RootElement, options); + } + + internal static RunStepDeltaCodeInterpreterOutput DeserializeRunStepDeltaCodeInterpreterOutput(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type", out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "image": return RunStepDeltaCodeInterpreterImageOutput.DeserializeRunStepDeltaCodeInterpreterImageOutput(element, options); + case "logs": return RunStepDeltaCodeInterpreterLogOutput.DeserializeRunStepDeltaCodeInterpreterLogOutput(element, options); + } + } + return UnknownRunStepDeltaCodeInterpreterOutput.DeserializeUnknownRunStepDeltaCodeInterpreterOutput(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(RunStepDeltaCodeInterpreterOutput)} does not support writing '{options.Format}' format."); + } + } + + RunStepDeltaCodeInterpreterOutput 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 DeserializeRunStepDeltaCodeInterpreterOutput(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDeltaCodeInterpreterOutput)} 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 RunStepDeltaCodeInterpreterOutput FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepDeltaCodeInterpreterOutput(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterOutput.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterOutput.cs new file mode 100644 index 000000000000..396e993239ce --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterOutput.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.AI.OpenAI.Assistants +{ + /// + /// The abstract base representation of a streaming run step tool call's Code Interpreter tool output. + /// 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 RunStepDeltaCodeInterpreterOutput + { + /// + /// 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 . + /// The index of the output in the streaming run step tool call's Code Interpreter outputs array. + protected RunStepDeltaCodeInterpreterOutput(int index) + { + Index = index; + } + + /// Initializes a new instance of . + /// The index of the output in the streaming run step tool call's Code Interpreter outputs array. + /// The type of the streaming run step tool call's Code Interpreter output. + /// Keeps track of any properties unknown to the library. + internal RunStepDeltaCodeInterpreterOutput(int index, string type, IDictionary serializedAdditionalRawData) + { + Index = index; + Type = type; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal RunStepDeltaCodeInterpreterOutput() + { + } + + /// The index of the output in the streaming run step tool call's Code Interpreter outputs array. + public int Index { get; } + /// The type of the streaming run step tool call's Code Interpreter output. + internal string Type { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterToolCall.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterToolCall.Serialization.cs new file mode 100644 index 000000000000..489f5d289a93 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterToolCall.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.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + public partial class RunStepDeltaCodeInterpreterToolCall : 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(RunStepDeltaCodeInterpreterToolCall)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(CodeInterpreter)) + { + writer.WritePropertyName("code_interpreter"u8); + writer.WriteObjectValue(CodeInterpreter, options); + } + } + + RunStepDeltaCodeInterpreterToolCall 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(RunStepDeltaCodeInterpreterToolCall)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDeltaCodeInterpreterToolCall(document.RootElement, options); + } + + internal static RunStepDeltaCodeInterpreterToolCall DeserializeRunStepDeltaCodeInterpreterToolCall(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + RunStepDeltaCodeInterpreterDetailItemObject codeInterpreter = default; + int index = default; + string id = default; + string type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("code_interpreter"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + codeInterpreter = RunStepDeltaCodeInterpreterDetailItemObject.DeserializeRunStepDeltaCodeInterpreterDetailItemObject(property.Value, options); + continue; + } + if (property.NameEquals("index"u8)) + { + index = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("id"u8)) + { + id = property.Value.GetString(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RunStepDeltaCodeInterpreterToolCall(index, id, type, serializedAdditionalRawData, codeInterpreter); + } + + 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(RunStepDeltaCodeInterpreterToolCall)} does not support writing '{options.Format}' format."); + } + } + + RunStepDeltaCodeInterpreterToolCall 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 DeserializeRunStepDeltaCodeInterpreterToolCall(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDeltaCodeInterpreterToolCall)} 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 RunStepDeltaCodeInterpreterToolCall FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepDeltaCodeInterpreterToolCall(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterToolCall.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterToolCall.cs new file mode 100644 index 000000000000..059c30cbca81 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaCodeInterpreterToolCall.cs @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Represents a Code Interpreter tool call within a streaming run step's tool call details. + public partial class RunStepDeltaCodeInterpreterToolCall : RunStepDeltaToolCall + { + /// Initializes a new instance of . + /// The index of the tool call detail in the run step's tool_calls array. + /// The ID of the tool call, used when submitting outputs to the run. + /// is null. + internal RunStepDeltaCodeInterpreterToolCall(int index, string id) : base(index, id) + { + Argument.AssertNotNull(id, nameof(id)); + + Type = "code_interpreter"; + } + + /// Initializes a new instance of . + /// The index of the tool call detail in the run step's tool_calls array. + /// The ID of the tool call, used when submitting outputs to the run. + /// The type of the tool call detail item in a streaming run step's details. + /// Keeps track of any properties unknown to the library. + /// The Code Interpreter data for the tool call. + internal RunStepDeltaCodeInterpreterToolCall(int index, string id, string type, IDictionary serializedAdditionalRawData, RunStepDeltaCodeInterpreterDetailItemObject codeInterpreter) : base(index, id, type, serializedAdditionalRawData) + { + CodeInterpreter = codeInterpreter; + } + + /// Initializes a new instance of for deserialization. + internal RunStepDeltaCodeInterpreterToolCall() + { + } + + /// The Code Interpreter data for the tool call. + public RunStepDeltaCodeInterpreterDetailItemObject CodeInterpreter { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaDetail.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaDetail.Serialization.cs new file mode 100644 index 000000000000..8fad23851a70 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaDetail.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.Text.Json; +using Azure.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + [PersistableModelProxy(typeof(UnknownRunStepDeltaDetail))] + public partial class RunStepDeltaDetail : 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(RunStepDeltaDetail)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type); + 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 + } + } + } + + RunStepDeltaDetail 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(RunStepDeltaDetail)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDeltaDetail(document.RootElement, options); + } + + internal static RunStepDeltaDetail DeserializeRunStepDeltaDetail(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type", out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "message_creation": return RunStepDeltaMessageCreation.DeserializeRunStepDeltaMessageCreation(element, options); + case "tool_calls": return RunStepDeltaToolCallObject.DeserializeRunStepDeltaToolCallObject(element, options); + } + } + return UnknownRunStepDeltaDetail.DeserializeUnknownRunStepDeltaDetail(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(RunStepDeltaDetail)} does not support writing '{options.Format}' format."); + } + } + + RunStepDeltaDetail 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 DeserializeRunStepDeltaDetail(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDeltaDetail)} 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 RunStepDeltaDetail FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepDeltaDetail(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaDetail.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaDetail.cs new file mode 100644 index 000000000000..508fac38660c --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaDetail.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.AI.OpenAI.Assistants +{ + /// + /// Represents a single run step detail item in a streaming run step's delta payload. + /// 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 RunStepDeltaDetail + { + /// + /// 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 RunStepDeltaDetail() + { + } + + /// Initializes a new instance of . + /// The object type for the run step detail object. + /// Keeps track of any properties unknown to the library. + internal RunStepDeltaDetail(string type, IDictionary serializedAdditionalRawData) + { + Type = type; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The object type for the run step detail object. + internal string Type { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFileSearchToolCall.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFileSearchToolCall.Serialization.cs new file mode 100644 index 000000000000..2ef059879d2f --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFileSearchToolCall.Serialization.cs @@ -0,0 +1,164 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class RunStepDeltaFileSearchToolCall : 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(RunStepDeltaFileSearchToolCall)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsCollectionDefined(FileSearch)) + { + writer.WritePropertyName("file_search"u8); + writer.WriteStartObject(); + foreach (var item in FileSearch) + { + writer.WritePropertyName(item.Key); + writer.WriteStringValue(item.Value); + } + writer.WriteEndObject(); + } + } + + RunStepDeltaFileSearchToolCall 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(RunStepDeltaFileSearchToolCall)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDeltaFileSearchToolCall(document.RootElement, options); + } + + internal static RunStepDeltaFileSearchToolCall DeserializeRunStepDeltaFileSearchToolCall(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyDictionary fileSearch = default; + int index = default; + string id = default; + string type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("file_search"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var property0 in property.Value.EnumerateObject()) + { + dictionary.Add(property0.Name, property0.Value.GetString()); + } + fileSearch = dictionary; + continue; + } + if (property.NameEquals("index"u8)) + { + index = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("id"u8)) + { + id = property.Value.GetString(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RunStepDeltaFileSearchToolCall(index, id, type, serializedAdditionalRawData, fileSearch ?? new ChangeTrackingDictionary()); + } + + 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(RunStepDeltaFileSearchToolCall)} does not support writing '{options.Format}' format."); + } + } + + RunStepDeltaFileSearchToolCall 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 DeserializeRunStepDeltaFileSearchToolCall(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDeltaFileSearchToolCall)} 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 RunStepDeltaFileSearchToolCall FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepDeltaFileSearchToolCall(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFileSearchToolCall.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFileSearchToolCall.cs new file mode 100644 index 000000000000..7be515d9cc76 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFileSearchToolCall.cs @@ -0,0 +1,47 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Represents a file search tool call within a streaming run step's tool call details. + public partial class RunStepDeltaFileSearchToolCall : RunStepDeltaToolCall + { + /// Initializes a new instance of . + /// The index of the tool call detail in the run step's tool_calls array. + /// The ID of the tool call, used when submitting outputs to the run. + /// is null. + internal RunStepDeltaFileSearchToolCall(int index, string id) : base(index, id) + { + Argument.AssertNotNull(id, nameof(id)); + + Type = "file_search"; + FileSearch = new ChangeTrackingDictionary(); + } + + /// Initializes a new instance of . + /// The index of the tool call detail in the run step's tool_calls array. + /// The ID of the tool call, used when submitting outputs to the run. + /// The type of the tool call detail item in a streaming run step's details. + /// Keeps track of any properties unknown to the library. + /// Reserved for future use. + internal RunStepDeltaFileSearchToolCall(int index, string id, string type, IDictionary serializedAdditionalRawData, IReadOnlyDictionary fileSearch) : base(index, id, type, serializedAdditionalRawData) + { + FileSearch = fileSearch; + } + + /// Initializes a new instance of for deserialization. + internal RunStepDeltaFileSearchToolCall() + { + } + + /// Reserved for future use. + public IReadOnlyDictionary FileSearch { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFunction.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFunction.Serialization.cs new file mode 100644 index 000000000000..dfd29726c505 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFunction.Serialization.cs @@ -0,0 +1,179 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class RunStepDeltaFunction : 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(RunStepDeltaFunction)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(Name)) + { + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); + } + if (Optional.IsDefined(Arguments)) + { + writer.WritePropertyName("arguments"u8); + writer.WriteStringValue(Arguments); + } + if (Optional.IsDefined(Output)) + { + if (Output != null) + { + writer.WritePropertyName("output"u8); + writer.WriteStringValue(Output); + } + else + { + writer.WriteNull("output"); + } + } + 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 + } + } + } + + RunStepDeltaFunction 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(RunStepDeltaFunction)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDeltaFunction(document.RootElement, options); + } + + internal static RunStepDeltaFunction DeserializeRunStepDeltaFunction(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string name = default; + string arguments = default; + string output = 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("arguments"u8)) + { + arguments = property.Value.GetString(); + continue; + } + if (property.NameEquals("output"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + output = null; + continue; + } + output = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RunStepDeltaFunction(name, arguments, output, 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(RunStepDeltaFunction)} does not support writing '{options.Format}' format."); + } + } + + RunStepDeltaFunction 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 DeserializeRunStepDeltaFunction(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDeltaFunction)} 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 RunStepDeltaFunction FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepDeltaFunction(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFunction.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFunction.cs new file mode 100644 index 000000000000..df34c88e6f43 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFunction.cs @@ -0,0 +1,73 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Represents the function data in a streaming run step delta's function tool call. + public partial class RunStepDeltaFunction + { + /// + /// 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 RunStepDeltaFunction() + { + } + + /// Initializes a new instance of . + /// The name of the function. + /// The arguments passed to the function as input. + /// The output of the function, null if outputs have not yet been submitted. + /// Keeps track of any properties unknown to the library. + internal RunStepDeltaFunction(string name, string arguments, string output, IDictionary serializedAdditionalRawData) + { + Name = name; + Arguments = arguments; + Output = output; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The name of the function. + public string Name { get; } + /// The arguments passed to the function as input. + public string Arguments { get; } + /// The output of the function, null if outputs have not yet been submitted. + public string Output { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFunctionToolCall.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFunctionToolCall.Serialization.cs new file mode 100644 index 000000000000..372692e32a75 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFunctionToolCall.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.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + public partial class RunStepDeltaFunctionToolCall : 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(RunStepDeltaFunctionToolCall)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Function)) + { + writer.WritePropertyName("function"u8); + writer.WriteObjectValue(Function, options); + } + } + + RunStepDeltaFunctionToolCall 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(RunStepDeltaFunctionToolCall)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDeltaFunctionToolCall(document.RootElement, options); + } + + internal static RunStepDeltaFunctionToolCall DeserializeRunStepDeltaFunctionToolCall(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + RunStepDeltaFunction function = default; + int index = default; + string id = default; + string type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("function"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + function = RunStepDeltaFunction.DeserializeRunStepDeltaFunction(property.Value, options); + continue; + } + if (property.NameEquals("index"u8)) + { + index = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("id"u8)) + { + id = property.Value.GetString(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RunStepDeltaFunctionToolCall(index, id, type, serializedAdditionalRawData, function); + } + + 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(RunStepDeltaFunctionToolCall)} does not support writing '{options.Format}' format."); + } + } + + RunStepDeltaFunctionToolCall 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 DeserializeRunStepDeltaFunctionToolCall(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDeltaFunctionToolCall)} 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 RunStepDeltaFunctionToolCall FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepDeltaFunctionToolCall(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFunctionToolCall.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFunctionToolCall.cs new file mode 100644 index 000000000000..ce9d9486ef82 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaFunctionToolCall.cs @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Represents a function tool call within a streaming run step's tool call details. + public partial class RunStepDeltaFunctionToolCall : RunStepDeltaToolCall + { + /// Initializes a new instance of . + /// The index of the tool call detail in the run step's tool_calls array. + /// The ID of the tool call, used when submitting outputs to the run. + /// is null. + internal RunStepDeltaFunctionToolCall(int index, string id) : base(index, id) + { + Argument.AssertNotNull(id, nameof(id)); + + Type = "function"; + } + + /// Initializes a new instance of . + /// The index of the tool call detail in the run step's tool_calls array. + /// The ID of the tool call, used when submitting outputs to the run. + /// The type of the tool call detail item in a streaming run step's details. + /// Keeps track of any properties unknown to the library. + /// The function data for the tool call. + internal RunStepDeltaFunctionToolCall(int index, string id, string type, IDictionary serializedAdditionalRawData, RunStepDeltaFunction function) : base(index, id, type, serializedAdditionalRawData) + { + Function = function; + } + + /// Initializes a new instance of for deserialization. + internal RunStepDeltaFunctionToolCall() + { + } + + /// The function data for the tool call. + public RunStepDeltaFunction Function { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaMessageCreation.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaMessageCreation.Serialization.cs new file mode 100644 index 000000000000..aa98784dc30f --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaMessageCreation.Serialization.cs @@ -0,0 +1,141 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class RunStepDeltaMessageCreation : 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(RunStepDeltaMessageCreation)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(MessageCreation)) + { + writer.WritePropertyName("message_creation"u8); + writer.WriteObjectValue(MessageCreation, options); + } + } + + RunStepDeltaMessageCreation 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(RunStepDeltaMessageCreation)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDeltaMessageCreation(document.RootElement, options); + } + + internal static RunStepDeltaMessageCreation DeserializeRunStepDeltaMessageCreation(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + RunStepDeltaMessageCreationObject messageCreation = default; + string type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("message_creation"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + messageCreation = RunStepDeltaMessageCreationObject.DeserializeRunStepDeltaMessageCreationObject(property.Value, options); + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RunStepDeltaMessageCreation(type, serializedAdditionalRawData, messageCreation); + } + + 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(RunStepDeltaMessageCreation)} does not support writing '{options.Format}' format."); + } + } + + RunStepDeltaMessageCreation 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 DeserializeRunStepDeltaMessageCreation(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDeltaMessageCreation)} 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 RunStepDeltaMessageCreation FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepDeltaMessageCreation(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaMessageCreation.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaMessageCreation.cs new file mode 100644 index 000000000000..38f8a808eeac --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaMessageCreation.cs @@ -0,0 +1,34 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Represents a message creation within a streaming run step delta. + public partial class RunStepDeltaMessageCreation : RunStepDeltaDetail + { + /// Initializes a new instance of . + internal RunStepDeltaMessageCreation() + { + Type = "message_creation"; + } + + /// Initializes a new instance of . + /// The object type for the run step detail object. + /// Keeps track of any properties unknown to the library. + /// The message creation data. + internal RunStepDeltaMessageCreation(string type, IDictionary serializedAdditionalRawData, RunStepDeltaMessageCreationObject messageCreation) : base(type, serializedAdditionalRawData) + { + MessageCreation = messageCreation; + } + + /// The message creation data. + public RunStepDeltaMessageCreationObject MessageCreation { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaMessageCreationObject.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaMessageCreationObject.Serialization.cs new file mode 100644 index 000000000000..f25ce59a3ae4 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaMessageCreationObject.Serialization.cs @@ -0,0 +1,145 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class RunStepDeltaMessageCreationObject : 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(RunStepDeltaMessageCreationObject)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(MessageId)) + { + writer.WritePropertyName("message_id"u8); + writer.WriteStringValue(MessageId); + } + 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 + } + } + } + + RunStepDeltaMessageCreationObject 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(RunStepDeltaMessageCreationObject)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDeltaMessageCreationObject(document.RootElement, options); + } + + internal static RunStepDeltaMessageCreationObject DeserializeRunStepDeltaMessageCreationObject(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string messageId = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("message_id"u8)) + { + messageId = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RunStepDeltaMessageCreationObject(messageId, 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(RunStepDeltaMessageCreationObject)} does not support writing '{options.Format}' format."); + } + } + + RunStepDeltaMessageCreationObject 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 DeserializeRunStepDeltaMessageCreationObject(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDeltaMessageCreationObject)} 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 RunStepDeltaMessageCreationObject FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepDeltaMessageCreationObject(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaMessageCreationObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaMessageCreationObject.cs new file mode 100644 index 000000000000..15aaccdbc60c --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaMessageCreationObject.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.AI.OpenAI.Assistants +{ + /// Represents the data within a streaming run step message creation response object. + public partial class RunStepDeltaMessageCreationObject + { + /// + /// 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 RunStepDeltaMessageCreationObject() + { + } + + /// Initializes a new instance of . + /// The ID of the newly-created message. + /// Keeps track of any properties unknown to the library. + internal RunStepDeltaMessageCreationObject(string messageId, IDictionary serializedAdditionalRawData) + { + MessageId = messageId; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The ID of the newly-created message. + public string MessageId { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaToolCall.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaToolCall.Serialization.cs new file mode 100644 index 000000000000..308ee81ccf2f --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaToolCall.Serialization.cs @@ -0,0 +1,139 @@ +// 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.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + [PersistableModelProxy(typeof(UnknownRunStepDeltaToolCall))] + public partial class RunStepDeltaToolCall : 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(RunStepDeltaToolCall)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("index"u8); + writer.WriteNumberValue(Index); + writer.WritePropertyName("id"u8); + writer.WriteStringValue(Id); + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type); + 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 + } + } + } + + RunStepDeltaToolCall 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(RunStepDeltaToolCall)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDeltaToolCall(document.RootElement, options); + } + + internal static RunStepDeltaToolCall DeserializeRunStepDeltaToolCall(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type", out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "code_interpreter": return RunStepDeltaCodeInterpreterToolCall.DeserializeRunStepDeltaCodeInterpreterToolCall(element, options); + case "file_search": return RunStepDeltaFileSearchToolCall.DeserializeRunStepDeltaFileSearchToolCall(element, options); + case "function": return RunStepDeltaFunctionToolCall.DeserializeRunStepDeltaFunctionToolCall(element, options); + } + } + return UnknownRunStepDeltaToolCall.DeserializeUnknownRunStepDeltaToolCall(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(RunStepDeltaToolCall)} does not support writing '{options.Format}' format."); + } + } + + RunStepDeltaToolCall 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 DeserializeRunStepDeltaToolCall(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDeltaToolCall)} 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 RunStepDeltaToolCall FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepDeltaToolCall(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaToolCall.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaToolCall.cs new file mode 100644 index 000000000000..c056ec5693c5 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaToolCall.cs @@ -0,0 +1,89 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// + /// The abstract base representation of a single tool call within a streaming run step's delta tool call details. + /// 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 RunStepDeltaToolCall + { + /// + /// 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 . + /// The index of the tool call detail in the run step's tool_calls array. + /// The ID of the tool call, used when submitting outputs to the run. + /// is null. + protected RunStepDeltaToolCall(int index, string id) + { + Argument.AssertNotNull(id, nameof(id)); + + Index = index; + Id = id; + } + + /// Initializes a new instance of . + /// The index of the tool call detail in the run step's tool_calls array. + /// The ID of the tool call, used when submitting outputs to the run. + /// The type of the tool call detail item in a streaming run step's details. + /// Keeps track of any properties unknown to the library. + internal RunStepDeltaToolCall(int index, string id, string type, IDictionary serializedAdditionalRawData) + { + Index = index; + Id = id; + Type = type; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal RunStepDeltaToolCall() + { + } + + /// The index of the tool call detail in the run step's tool_calls array. + public int Index { get; } + /// The ID of the tool call, used when submitting outputs to the run. + public string Id { get; } + /// The type of the tool call detail item in a streaming run step's details. + internal string Type { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaToolCallObject.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaToolCallObject.Serialization.cs new file mode 100644 index 000000000000..8803d2e2754e --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaToolCallObject.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.AI.OpenAI.Assistants +{ + public partial class RunStepDeltaToolCallObject : 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(RunStepDeltaToolCallObject)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsCollectionDefined(ToolCalls)) + { + writer.WritePropertyName("tool_calls"u8); + writer.WriteStartArray(); + foreach (var item in ToolCalls) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + } + + RunStepDeltaToolCallObject 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(RunStepDeltaToolCallObject)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDeltaToolCallObject(document.RootElement, options); + } + + internal static RunStepDeltaToolCallObject DeserializeRunStepDeltaToolCallObject(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList toolCalls = default; + string type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("tool_calls"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(RunStepDeltaToolCall.DeserializeRunStepDeltaToolCall(item, options)); + } + toolCalls = array; + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RunStepDeltaToolCallObject(type, serializedAdditionalRawData, toolCalls ?? new ChangeTrackingList()); + } + + 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(RunStepDeltaToolCallObject)} does not support writing '{options.Format}' format."); + } + } + + RunStepDeltaToolCallObject 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 DeserializeRunStepDeltaToolCallObject(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDeltaToolCallObject)} 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 RunStepDeltaToolCallObject FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepDeltaToolCallObject(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaToolCallObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaToolCallObject.cs new file mode 100644 index 000000000000..77d87fe333e1 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepDeltaToolCallObject.cs @@ -0,0 +1,43 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Represents an invocation of tool calls as part of a streaming run step. + public partial class RunStepDeltaToolCallObject : RunStepDeltaDetail + { + /// Initializes a new instance of . + internal RunStepDeltaToolCallObject() + { + Type = "tool_calls"; + ToolCalls = new ChangeTrackingList(); + } + + /// Initializes a new instance of . + /// The object type for the run step detail object. + /// Keeps track of any properties unknown to the library. + /// + /// The collection of tool calls for the tool call detail item. + /// 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 . + /// + internal RunStepDeltaToolCallObject(string type, IDictionary serializedAdditionalRawData, IReadOnlyList toolCalls) : base(type, serializedAdditionalRawData) + { + ToolCalls = toolCalls; + } + + /// + /// The collection of tool calls for the tool call detail item. + /// 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 IReadOnlyList ToolCalls { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepFileSearchToolCall.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepFileSearchToolCall.Serialization.cs new file mode 100644 index 000000000000..083a4df3e845 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepFileSearchToolCall.Serialization.cs @@ -0,0 +1,150 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class RunStepFileSearchToolCall : 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(RunStepFileSearchToolCall)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + writer.WritePropertyName("file_search"u8); + writer.WriteStartArray(); + foreach (var item in FileSearch) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + + RunStepFileSearchToolCall 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(RunStepFileSearchToolCall)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepFileSearchToolCall(document.RootElement, options); + } + + internal static RunStepFileSearchToolCall DeserializeRunStepFileSearchToolCall(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList fileSearch = default; + string type = default; + string id = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("file_search"u8)) + { + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(FileSearchToolCallResult.DeserializeFileSearchToolCallResult(item, options)); + } + fileSearch = array; + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (property.NameEquals("id"u8)) + { + id = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new RunStepFileSearchToolCall(type, id, serializedAdditionalRawData, fileSearch); + } + + 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(RunStepFileSearchToolCall)} does not support writing '{options.Format}' format."); + } + } + + RunStepFileSearchToolCall 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 DeserializeRunStepFileSearchToolCall(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepFileSearchToolCall)} 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 RunStepFileSearchToolCall FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeRunStepFileSearchToolCall(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepFileSearchToolCall.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepFileSearchToolCall.cs new file mode 100644 index 000000000000..23e713b3d2b0 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepFileSearchToolCall.cs @@ -0,0 +1,51 @@ +// 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.AI.OpenAI.Assistants +{ + /// + /// A record of a call to a file search tool, issued by the model in evaluation of a defined tool, that represents + /// executed file search. + /// + public partial class RunStepFileSearchToolCall : RunStepToolCall + { + /// Initializes a new instance of . + /// The ID of the tool call. This ID must be referenced when you submit tool outputs. + /// The results of the file search. + /// or is null. + internal RunStepFileSearchToolCall(string id, IEnumerable fileSearch) : base(id) + { + Argument.AssertNotNull(id, nameof(id)); + Argument.AssertNotNull(fileSearch, nameof(fileSearch)); + + Type = "file_search"; + FileSearch = fileSearch.ToList(); + } + + /// Initializes a new instance of . + /// The object type. + /// The ID of the tool call. This ID must be referenced when you submit tool outputs. + /// Keeps track of any properties unknown to the library. + /// The results of the file search. + internal RunStepFileSearchToolCall(string type, string id, IDictionary serializedAdditionalRawData, IReadOnlyList fileSearch) : base(type, id, serializedAdditionalRawData) + { + FileSearch = fileSearch; + } + + /// Initializes a new instance of for deserialization. + internal RunStepFileSearchToolCall() + { + } + + /// The results of the file search. + public IReadOnlyList FileSearch { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepRetrievalToolCall.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepRetrievalToolCall.cs deleted file mode 100644 index 5f119347d5f3..000000000000 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepRetrievalToolCall.cs +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using System.Collections.Generic; - -namespace Azure.AI.OpenAI.Assistants -{ - /// - /// A record of a call to a retrieval tool, issued by the model in evaluation of a defined tool, that represents - /// executed retrieval actions. - /// - public partial class RunStepRetrievalToolCall : RunStepToolCall - { - /// Initializes a new instance of . - /// The ID of the tool call. This ID must be referenced when you submit tool outputs. - /// The key/value pairs produced by the retrieval tool. - /// or is null. - internal RunStepRetrievalToolCall(string id, IReadOnlyDictionary retrieval) : base(id) - { - Argument.AssertNotNull(id, nameof(id)); - Argument.AssertNotNull(retrieval, nameof(retrieval)); - - Type = "retrieval"; - Retrieval = retrieval; - } - - /// Initializes a new instance of . - /// The object type. - /// The ID of the tool call. This ID must be referenced when you submit tool outputs. - /// Keeps track of any properties unknown to the library. - /// The key/value pairs produced by the retrieval tool. - internal RunStepRetrievalToolCall(string type, string id, IDictionary serializedAdditionalRawData, IReadOnlyDictionary retrieval) : base(type, id, serializedAdditionalRawData) - { - Retrieval = retrieval; - } - - /// Initializes a new instance of for deserialization. - internal RunStepRetrievalToolCall() - { - } - - /// The key/value pairs produced by the retrieval tool. - public IReadOnlyDictionary Retrieval { get; } - } -} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepStreamEvent.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepStreamEvent.cs new file mode 100644 index 000000000000..3949704709ad --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepStreamEvent.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 Azure.AI.OpenAI.Assistants +{ + /// Run step operation related streaming events. + public readonly partial struct RunStepStreamEvent : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public RunStepStreamEvent(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string ThreadRunStepCreatedValue = "thread.run.step.created"; + private const string ThreadRunStepInProgressValue = "thread.run.step.in_progress"; + private const string ThreadRunStepDeltaValue = "thread.run.step.delta"; + private const string ThreadRunStepCompletedValue = "thread.run.step.completed"; + private const string ThreadRunStepFailedValue = "thread.run.step.failed"; + private const string ThreadRunStepCancelledValue = "thread.run.step.cancelled"; + private const string ThreadRunStepExpiredValue = "thread.run.step.expired"; + + /// Event sent when a new thread run step is created. The data of this event is of type RunStep. + public static RunStepStreamEvent ThreadRunStepCreated { get; } = new RunStepStreamEvent(ThreadRunStepCreatedValue); + /// Event sent when a run step moves to `in_progress` status. The data of this event is of type RunStep. + public static RunStepStreamEvent ThreadRunStepInProgress { get; } = new RunStepStreamEvent(ThreadRunStepInProgressValue); + /// Event sent when a run stepis being streamed. The data of this event is of type RunStepDeltaChunk. + public static RunStepStreamEvent ThreadRunStepDelta { get; } = new RunStepStreamEvent(ThreadRunStepDeltaValue); + /// Event sent when a run step is completed. The data of this event is of type RunStep. + public static RunStepStreamEvent ThreadRunStepCompleted { get; } = new RunStepStreamEvent(ThreadRunStepCompletedValue); + /// Event sent when a run step fails. The data of this event is of type RunStep. + public static RunStepStreamEvent ThreadRunStepFailed { get; } = new RunStepStreamEvent(ThreadRunStepFailedValue); + /// Event sent when a run step is cancelled. The data of this event is of type RunStep. + public static RunStepStreamEvent ThreadRunStepCancelled { get; } = new RunStepStreamEvent(ThreadRunStepCancelledValue); + /// Event sent when a run step is expired. The data of this event is of type RunStep. + public static RunStepStreamEvent ThreadRunStepExpired { get; } = new RunStepStreamEvent(ThreadRunStepExpiredValue); + /// Determines if two values are the same. + public static bool operator ==(RunStepStreamEvent left, RunStepStreamEvent right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(RunStepStreamEvent left, RunStepStreamEvent right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator RunStepStreamEvent(string value) => new RunStepStreamEvent(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is RunStepStreamEvent other && Equals(other); + /// + public bool Equals(RunStepStreamEvent 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepToolCall.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepToolCall.Serialization.cs index 3f2722881b5f..59eb0aae5583 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepToolCall.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepToolCall.Serialization.cs @@ -80,8 +80,8 @@ internal static RunStepToolCall DeserializeRunStepToolCall(JsonElement element, switch (discriminator.GetString()) { case "code_interpreter": return RunStepCodeInterpreterToolCall.DeserializeRunStepCodeInterpreterToolCall(element, options); + case "file_search": return RunStepFileSearchToolCall.DeserializeRunStepFileSearchToolCall(element, options); case "function": return RunStepFunctionToolCall.DeserializeRunStepFunctionToolCall(element, options); - case "retrieval": return RunStepRetrievalToolCall.DeserializeRunStepRetrievalToolCall(element, options); } } return UnknownRunStepToolCall.DeserializeUnknownRunStepToolCall(element, options); diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepToolCall.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepToolCall.cs index a1f39c74d40e..b458fd4827e9 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepToolCall.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepToolCall.cs @@ -13,7 +13,7 @@ namespace Azure.AI.OpenAI.Assistants /// /// An abstract representation of a detailed tool call as recorded within a run step for an existing run. /// 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 . + /// The available derived classes include , and . /// public abstract partial class RunStepToolCall { diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepToolCallDetails.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepToolCallDetails.cs index dedd295f4d8a..1d55d40ac096 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepToolCallDetails.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStepToolCallDetails.cs @@ -18,7 +18,7 @@ public partial class RunStepToolCallDetails : RunStepDetails /// /// A list of tool call details for this run step. /// 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 . + /// The available derived classes include , and . /// /// is null. internal RunStepToolCallDetails(IEnumerable toolCalls) @@ -35,7 +35,7 @@ internal RunStepToolCallDetails(IEnumerable toolCalls) /// /// A list of tool call details for this run step. /// 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 . + /// The available derived classes include , and . /// internal RunStepToolCallDetails(RunStepType type, IDictionary serializedAdditionalRawData, IReadOnlyList toolCalls) : base(type, serializedAdditionalRawData) { @@ -50,7 +50,7 @@ internal RunStepToolCallDetails() /// /// A list of tool call details for this run step. /// 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 . + /// The available derived classes include , and . /// public IReadOnlyList ToolCalls { get; } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStreamEvent.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStreamEvent.cs new file mode 100644 index 000000000000..d9ce800c9594 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RunStreamEvent.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.AI.OpenAI.Assistants +{ + /// Run operation related streaming events. + public readonly partial struct RunStreamEvent : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public RunStreamEvent(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string ThreadRunCreatedValue = "thread.run.created"; + private const string ThreadRunQueuedValue = "thread.run.queued"; + private const string ThreadRunInProgressValue = "thread.run.in_progress"; + private const string ThreadRunRequiresActionValue = "thread.run.requires_action"; + private const string ThreadRunCompletedValue = "thread.run.completed"; + private const string ThreadRunFailedValue = "thread.run.failed"; + private const string ThreadRunCancellingValue = "thread.run.cancelling"; + private const string ThreadRunCancelledValue = "thread.run.cancelled"; + private const string ThreadRunExpiredValue = "thread.run.expired"; + + /// Event sent when a new run is created. The data of this event is of type ThreadRun. + public static RunStreamEvent ThreadRunCreated { get; } = new RunStreamEvent(ThreadRunCreatedValue); + /// Event sent when a run moves to `queued` status. The data of this event is of type ThreadRun. + public static RunStreamEvent ThreadRunQueued { get; } = new RunStreamEvent(ThreadRunQueuedValue); + /// Event sent when a run moves to `in_progress` status. The data of this event is of type ThreadRun. + public static RunStreamEvent ThreadRunInProgress { get; } = new RunStreamEvent(ThreadRunInProgressValue); + /// Event sent when a run moves to `requires_action` status. The data of this event is of type ThreadRun. + public static RunStreamEvent ThreadRunRequiresAction { get; } = new RunStreamEvent(ThreadRunRequiresActionValue); + /// Event sent when a run is completed. The data of this event is of type ThreadRun. + public static RunStreamEvent ThreadRunCompleted { get; } = new RunStreamEvent(ThreadRunCompletedValue); + /// Event sent when a run fails. The data of this event is of type ThreadRun. + public static RunStreamEvent ThreadRunFailed { get; } = new RunStreamEvent(ThreadRunFailedValue); + /// Event sent when a run moves to `cancelling` status. The data of this event is of type ThreadRun. + public static RunStreamEvent ThreadRunCancelling { get; } = new RunStreamEvent(ThreadRunCancellingValue); + /// Event sent when a run is cancelled. The data of this event is of type ThreadRun. + public static RunStreamEvent ThreadRunCancelled { get; } = new RunStreamEvent(ThreadRunCancelledValue); + /// Event sent when a run is expired. The data of this event is of type ThreadRun. + public static RunStreamEvent ThreadRunExpired { get; } = new RunStreamEvent(ThreadRunExpiredValue); + /// Determines if two values are the same. + public static bool operator ==(RunStreamEvent left, RunStreamEvent right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(RunStreamEvent left, RunStreamEvent right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator RunStreamEvent(string value) => new RunStreamEvent(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is RunStreamEvent other && Equals(other); + /// + public bool Equals(RunStreamEvent 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/SubmitToolOutputsToRunRequest.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/SubmitToolOutputsToRunRequest.Serialization.cs index 578385488318..3c283ee481a9 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/SubmitToolOutputsToRunRequest.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/SubmitToolOutputsToRunRequest.Serialization.cs @@ -41,6 +41,18 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteObjectValue(item, options); } writer.WriteEndArray(); + if (Optional.IsDefined(Stream)) + { + if (Stream != null) + { + writer.WritePropertyName("stream"u8); + writer.WriteBooleanValue(Stream.Value); + } + else + { + writer.WriteNull("stream"); + } + } if (options.Format != "W" && _serializedAdditionalRawData != null) { foreach (var item in _serializedAdditionalRawData) @@ -79,6 +91,7 @@ internal static SubmitToolOutputsToRunRequest DeserializeSubmitToolOutputsToRunR return null; } IReadOnlyList toolOutputs = default; + bool? stream = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); foreach (var property in element.EnumerateObject()) @@ -93,13 +106,23 @@ internal static SubmitToolOutputsToRunRequest DeserializeSubmitToolOutputsToRunR toolOutputs = array; continue; } + if (property.NameEquals("stream"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + stream = null; + continue; + } + stream = property.Value.GetBoolean(); + continue; + } if (options.Format != "W") { rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); } } serializedAdditionalRawData = rawDataDictionary; - return new SubmitToolOutputsToRunRequest(toolOutputs, serializedAdditionalRawData); + return new SubmitToolOutputsToRunRequest(toolOutputs, stream, serializedAdditionalRawData); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/SubmitToolOutputsToRunRequest.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/SubmitToolOutputsToRunRequest.cs index 7fc21ab959a6..2971598450d1 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/SubmitToolOutputsToRunRequest.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/SubmitToolOutputsToRunRequest.cs @@ -47,7 +47,7 @@ internal partial class SubmitToolOutputsToRunRequest private IDictionary _serializedAdditionalRawData; /// Initializes a new instance of . - /// The list of tool outputs requested by tool calls from the specified run. + /// A list of tools for which the outputs are being submitted. /// is null. internal SubmitToolOutputsToRunRequest(IEnumerable toolOutputs) { @@ -57,11 +57,13 @@ internal SubmitToolOutputsToRunRequest(IEnumerable toolOutputs) } /// Initializes a new instance of . - /// The list of tool outputs requested by tool calls from the specified run. + /// A list of tools for which the outputs are being submitted. + /// If `true`, returns a stream of events that happen during the Run as server-sent events, terminating when the Run enters a terminal state with a `data: [DONE]` message. /// Keeps track of any properties unknown to the library. - internal SubmitToolOutputsToRunRequest(IReadOnlyList toolOutputs, IDictionary serializedAdditionalRawData) + internal SubmitToolOutputsToRunRequest(IReadOnlyList toolOutputs, bool? stream, IDictionary serializedAdditionalRawData) { ToolOutputs = toolOutputs; + Stream = stream; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -70,7 +72,9 @@ internal SubmitToolOutputsToRunRequest() { } - /// The list of tool outputs requested by tool calls from the specified run. + /// A list of tools for which the outputs are being submitted. public IReadOnlyList ToolOutputs { get; } + /// If `true`, returns a stream of events that happen during the Run as server-sent events, terminating when the Run enters a terminal state with a `data: [DONE]` message. + public bool? Stream { get; } } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadMessage.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadMessage.Serialization.cs index c76a75916857..f83443bb45a0 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadMessage.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadMessage.Serialization.cs @@ -42,6 +42,35 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteNumberValue(CreatedAt, "U"); writer.WritePropertyName("thread_id"u8); writer.WriteStringValue(ThreadId); + writer.WritePropertyName("status"u8); + writer.WriteStringValue(Status.ToString()); + if (IncompleteDetails != null) + { + writer.WritePropertyName("incomplete_details"u8); + writer.WriteObjectValue(IncompleteDetails, options); + } + else + { + writer.WriteNull("incomplete_details"); + } + if (CompletedAt != null) + { + writer.WritePropertyName("completed_at"u8); + writer.WriteNumberValue(CompletedAt.Value, "U"); + } + else + { + writer.WriteNull("completed_at"); + } + if (IncompleteAt != null) + { + writer.WritePropertyName("incomplete_at"u8); + writer.WriteNumberValue(IncompleteAt.Value, "U"); + } + else + { + writer.WriteNull("incomplete_at"); + } writer.WritePropertyName("role"u8); writer.WriteStringValue(Role.ToString()); writer.WritePropertyName("content"u8); @@ -51,23 +80,38 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteObjectValue(item, options); } writer.WriteEndArray(); - if (Optional.IsDefined(AssistantId)) + if (AssistantId != null) { writer.WritePropertyName("assistant_id"u8); writer.WriteStringValue(AssistantId); } - if (Optional.IsDefined(RunId)) + else + { + writer.WriteNull("assistant_id"); + } + if (RunId != null) { writer.WritePropertyName("run_id"u8); writer.WriteStringValue(RunId); } - writer.WritePropertyName("file_ids"u8); - writer.WriteStartArray(); - foreach (var item in FileIds) + else { - writer.WriteStringValue(item); + writer.WriteNull("run_id"); + } + if (Attachments != null && Optional.IsCollectionDefined(Attachments)) + { + writer.WritePropertyName("attachments"u8); + writer.WriteStartArray(); + foreach (var item in Attachments) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + else + { + writer.WriteNull("attachments"); } - writer.WriteEndArray(); if (Metadata != null && Optional.IsCollectionDefined(Metadata)) { writer.WritePropertyName("metadata"u8); @@ -124,12 +168,16 @@ internal static ThreadMessage DeserializeThreadMessage(JsonElement element, Mode string @object = default; DateTimeOffset createdAt = default; string threadId = default; + MessageStatus status = default; + MessageIncompleteDetails incompleteDetails = default; + DateTimeOffset? completedAt = default; + DateTimeOffset? incompleteAt = default; MessageRole role = default; - IReadOnlyList content = default; + IList content = default; string assistantId = default; string runId = default; - IReadOnlyList fileIds = default; - IReadOnlyDictionary metadata = default; + IList attachments = default; + IDictionary metadata = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); foreach (var property in element.EnumerateObject()) @@ -154,6 +202,41 @@ internal static ThreadMessage DeserializeThreadMessage(JsonElement element, Mode threadId = property.Value.GetString(); continue; } + if (property.NameEquals("status"u8)) + { + status = new MessageStatus(property.Value.GetString()); + continue; + } + if (property.NameEquals("incomplete_details"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + incompleteDetails = null; + continue; + } + incompleteDetails = MessageIncompleteDetails.DeserializeMessageIncompleteDetails(property.Value, options); + continue; + } + if (property.NameEquals("completed_at"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + completedAt = null; + continue; + } + completedAt = DateTimeOffset.FromUnixTimeSeconds(property.Value.GetInt64()); + continue; + } + if (property.NameEquals("incomplete_at"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + incompleteAt = null; + continue; + } + incompleteAt = DateTimeOffset.FromUnixTimeSeconds(property.Value.GetInt64()); + continue; + } if (property.NameEquals("role"u8)) { role = new MessageRole(property.Value.GetString()); @@ -171,22 +254,37 @@ internal static ThreadMessage DeserializeThreadMessage(JsonElement element, Mode } if (property.NameEquals("assistant_id"u8)) { + if (property.Value.ValueKind == JsonValueKind.Null) + { + assistantId = null; + continue; + } assistantId = property.Value.GetString(); continue; } if (property.NameEquals("run_id"u8)) { + if (property.Value.ValueKind == JsonValueKind.Null) + { + runId = null; + continue; + } runId = property.Value.GetString(); continue; } - if (property.NameEquals("file_ids"u8)) + if (property.NameEquals("attachments"u8)) { - List array = new List(); + if (property.Value.ValueKind == JsonValueKind.Null) + { + attachments = new ChangeTrackingList(); + continue; + } + List array = new List(); foreach (var item in property.Value.EnumerateArray()) { - array.Add(item.GetString()); + array.Add(MessageAttachment.DeserializeMessageAttachment(item, options)); } - fileIds = array; + attachments = array; continue; } if (property.NameEquals("metadata"u8)) @@ -215,11 +313,15 @@ internal static ThreadMessage DeserializeThreadMessage(JsonElement element, Mode @object, createdAt, threadId, + status, + incompleteDetails, + completedAt, + incompleteAt, role, content, assistantId, runId, - fileIds, + attachments, metadata, serializedAdditionalRawData); } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadMessage.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadMessage.cs index 8bc5a7e7779b..c730b23b4dcf 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadMessage.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadMessage.cs @@ -50,31 +50,39 @@ public partial class ThreadMessage /// The identifier, which can be referenced in API endpoints. /// The Unix timestamp, in seconds, representing when this object was created. /// The ID of the thread that this message belongs to. + /// The status of the message. + /// On an incomplete message, details about why the message is incomplete. + /// The Unix timestamp (in seconds) for when the message was completed. + /// The Unix timestamp (in seconds) for when the message was marked as incomplete. /// The role associated with the assistant thread message. /// /// The list of content items associated with the assistant thread message. /// 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 . /// - /// - /// A list of file IDs that the assistant should use. Useful for tools like retrieval and code_interpreter that can - /// access files. - /// + /// If applicable, the ID of the assistant that authored this message. + /// If applicable, the ID of the run associated with the authoring of this message. + /// A list of files attached to the message, and the tools they were added to. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. - /// , , or is null. - internal ThreadMessage(string id, DateTimeOffset createdAt, string threadId, MessageRole role, IEnumerable contentItems, IEnumerable fileIds, IReadOnlyDictionary metadata) + /// , or is null. + public ThreadMessage(string id, DateTimeOffset createdAt, string threadId, MessageStatus status, MessageIncompleteDetails incompleteDetails, DateTimeOffset? completedAt, DateTimeOffset? incompleteAt, MessageRole role, IEnumerable contentItems, string assistantId, string runId, IEnumerable attachments, IDictionary metadata) { Argument.AssertNotNull(id, nameof(id)); Argument.AssertNotNull(threadId, nameof(threadId)); Argument.AssertNotNull(contentItems, nameof(contentItems)); - Argument.AssertNotNull(fileIds, nameof(fileIds)); Id = id; CreatedAt = createdAt; ThreadId = threadId; + Status = status; + IncompleteDetails = incompleteDetails; + CompletedAt = completedAt; + IncompleteAt = incompleteAt; Role = role; ContentItems = contentItems.ToList(); - FileIds = fileIds.ToList(); + AssistantId = assistantId; + RunId = runId; + Attachments = attachments?.ToList(); Metadata = metadata; } @@ -83,6 +91,10 @@ internal ThreadMessage(string id, DateTimeOffset createdAt, string threadId, Mes /// The object type, which is always 'thread.message'. /// The Unix timestamp, in seconds, representing when this object was created. /// The ID of the thread that this message belongs to. + /// The status of the message. + /// On an incomplete message, details about why the message is incomplete. + /// The Unix timestamp (in seconds) for when the message was completed. + /// The Unix timestamp (in seconds) for when the message was marked as incomplete. /// The role associated with the assistant thread message. /// /// The list of content items associated with the assistant thread message. @@ -91,23 +103,24 @@ internal ThreadMessage(string id, DateTimeOffset createdAt, string threadId, Mes /// /// If applicable, the ID of the assistant that authored this message. /// If applicable, the ID of the run associated with the authoring of this message. - /// - /// A list of file IDs that the assistant should use. Useful for tools like retrieval and code_interpreter that can - /// access files. - /// + /// A list of files attached to the message, and the tools they were added to. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// Keeps track of any properties unknown to the library. - internal ThreadMessage(string id, string @object, DateTimeOffset createdAt, string threadId, MessageRole role, IReadOnlyList contentItems, string assistantId, string runId, IReadOnlyList fileIds, IReadOnlyDictionary metadata, IDictionary serializedAdditionalRawData) + internal ThreadMessage(string id, string @object, DateTimeOffset createdAt, string threadId, MessageStatus status, MessageIncompleteDetails incompleteDetails, DateTimeOffset? completedAt, DateTimeOffset? incompleteAt, MessageRole role, IList contentItems, string assistantId, string runId, IList attachments, IDictionary metadata, IDictionary serializedAdditionalRawData) { Id = id; Object = @object; CreatedAt = createdAt; ThreadId = threadId; + Status = status; + IncompleteDetails = incompleteDetails; + CompletedAt = completedAt; + IncompleteAt = incompleteAt; Role = role; ContentItems = contentItems; AssistantId = assistantId; RunId = runId; - FileIds = fileIds; + Attachments = attachments; Metadata = metadata; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -118,30 +131,35 @@ internal ThreadMessage() } /// The identifier, which can be referenced in API endpoints. - public string Id { get; } + public string Id { get; set; } /// The Unix timestamp, in seconds, representing when this object was created. - public DateTimeOffset CreatedAt { get; } + public DateTimeOffset CreatedAt { get; set; } /// The ID of the thread that this message belongs to. - public string ThreadId { get; } + public string ThreadId { get; set; } + /// The status of the message. + public MessageStatus Status { get; set; } + /// On an incomplete message, details about why the message is incomplete. + public MessageIncompleteDetails IncompleteDetails { get; set; } + /// The Unix timestamp (in seconds) for when the message was completed. + public DateTimeOffset? CompletedAt { get; set; } + /// The Unix timestamp (in seconds) for when the message was marked as incomplete. + public DateTimeOffset? IncompleteAt { get; set; } /// The role associated with the assistant thread message. - public MessageRole Role { get; } + public MessageRole Role { get; set; } /// /// The list of content items associated with the assistant thread message. /// 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 IReadOnlyList ContentItems { get; } + public IList ContentItems { get; } /// If applicable, the ID of the assistant that authored this message. - public string AssistantId { get; } + public string AssistantId { get; set; } /// If applicable, the ID of the run associated with the authoring of this message. - public string RunId { get; } - /// - /// A list of file IDs that the assistant should use. Useful for tools like retrieval and code_interpreter that can - /// access files. - /// - public IReadOnlyList FileIds { get; } + public string RunId { get; set; } + /// A list of files attached to the message, and the tools they were added to. + public IList Attachments { get; set; } /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. - public IReadOnlyDictionary Metadata { get; } + public IDictionary Metadata { get; set; } } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateMessageRequest.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadMessageOptions.Serialization.cs similarity index 70% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateMessageRequest.Serialization.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadMessageOptions.Serialization.cs index b8cd2cbf423c..80dd17220a50 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateMessageRequest.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadMessageOptions.Serialization.cs @@ -13,11 +13,11 @@ namespace Azure.AI.OpenAI.Assistants { - internal partial class CreateMessageRequest : IUtf8JsonSerializable, IJsonModel + public partial class ThreadMessageOptions : IUtf8JsonSerializable, IJsonModel { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); - void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) { writer.WriteStartObject(); JsonModelWriteCore(writer, options); @@ -28,25 +28,32 @@ void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWr /// 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; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(CreateMessageRequest)} does not support writing '{format}' format."); + throw new FormatException($"The model {nameof(ThreadMessageOptions)} does not support writing '{format}' format."); } writer.WritePropertyName("role"u8); writer.WriteStringValue(Role.ToString()); writer.WritePropertyName("content"u8); writer.WriteStringValue(Content); - if (Optional.IsCollectionDefined(FileIds)) + if (Optional.IsCollectionDefined(Attachments)) { - writer.WritePropertyName("file_ids"u8); - writer.WriteStartArray(); - foreach (var item in FileIds) + if (Attachments != null) { - writer.WriteStringValue(item); + writer.WritePropertyName("attachments"u8); + writer.WriteStartArray(); + foreach (var item in Attachments) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + else + { + writer.WriteNull("attachments"); } - writer.WriteEndArray(); } if (Optional.IsCollectionDefined(Metadata)) { @@ -83,19 +90,19 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } } - CreateMessageRequest IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + ThreadMessageOptions IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(CreateMessageRequest)} does not support reading '{format}' format."); + throw new FormatException($"The model {nameof(ThreadMessageOptions)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return DeserializeCreateMessageRequest(document.RootElement, options); + return DeserializeThreadMessageOptions(document.RootElement, options); } - internal static CreateMessageRequest DeserializeCreateMessageRequest(JsonElement element, ModelReaderWriterOptions options = null) + internal static ThreadMessageOptions DeserializeThreadMessageOptions(JsonElement element, ModelReaderWriterOptions options = null) { options ??= ModelSerializationExtensions.WireOptions; @@ -105,8 +112,8 @@ internal static CreateMessageRequest DeserializeCreateMessageRequest(JsonElement } MessageRole role = default; string content = default; - IReadOnlyList fileIds = default; - IReadOnlyDictionary metadata = default; + IList attachments = default; + IDictionary metadata = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); foreach (var property in element.EnumerateObject()) @@ -121,18 +128,18 @@ internal static CreateMessageRequest DeserializeCreateMessageRequest(JsonElement content = property.Value.GetString(); continue; } - if (property.NameEquals("file_ids"u8)) + if (property.NameEquals("attachments"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } - List array = new List(); + List array = new List(); foreach (var item in property.Value.EnumerateArray()) { - array.Add(item.GetString()); + array.Add(MessageAttachment.DeserializeMessageAttachment(item, options)); } - fileIds = array; + attachments = array; continue; } if (property.NameEquals("metadata"u8)) @@ -155,46 +162,46 @@ internal static CreateMessageRequest DeserializeCreateMessageRequest(JsonElement } } serializedAdditionalRawData = rawDataDictionary; - return new CreateMessageRequest(role, content, fileIds ?? new ChangeTrackingList(), metadata ?? new ChangeTrackingDictionary(), serializedAdditionalRawData); + return new ThreadMessageOptions(role, content, attachments ?? new ChangeTrackingList(), metadata ?? new ChangeTrackingDictionary(), serializedAdditionalRawData); } - BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + 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(CreateMessageRequest)} does not support writing '{options.Format}' format."); + throw new FormatException($"The model {nameof(ThreadMessageOptions)} does not support writing '{options.Format}' format."); } } - CreateMessageRequest IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + ThreadMessageOptions IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; switch (format) { case "J": { using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeCreateMessageRequest(document.RootElement, options); + return DeserializeThreadMessageOptions(document.RootElement, options); } default: - throw new FormatException($"The model {nameof(CreateMessageRequest)} does not support reading '{options.Format}' format."); + throw new FormatException($"The model {nameof(ThreadMessageOptions)} does not support reading '{options.Format}' format."); } } - string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; /// Deserializes the model from a raw response. /// The response to deserialize the model from. - internal static CreateMessageRequest FromResponse(Response response) + internal static ThreadMessageOptions FromResponse(Response response) { using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeCreateMessageRequest(document.RootElement); + return DeserializeThreadMessageOptions(document.RootElement); } /// Convert into a . diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadInitializationMessage.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadMessageOptions.cs similarity index 53% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadInitializationMessage.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadMessageOptions.cs index 5ce61588505d..6487c1ad7bf4 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadInitializationMessage.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadMessageOptions.cs @@ -11,7 +11,7 @@ namespace Azure.AI.OpenAI.Assistants { /// A single message within an assistant thread, as provided during that thread's creation for its initial state. - public partial class ThreadInitializationMessage + public partial class ThreadMessageOptions { /// /// Keeps track of any properties unknown to the library. @@ -45,52 +45,70 @@ public partial class ThreadInitializationMessage /// private IDictionary _serializedAdditionalRawData; - /// Initializes a new instance of . - /// The role associated with the assistant thread message. Currently, only 'user' is supported when providing initial messages to a new thread. - /// The textual content of the initial message. Currently, robust input including images and annotated text may only be provided via a separate call to the create message API. + /// Initializes a new instance of . + /// + /// The role of the entity that is creating the message. Allowed values include: + /// - `user`: Indicates the message is sent by an actual user and should be used in most cases to represent user-generated messages. + /// - `assistant`: Indicates the message is generated by the assistant. Use this value to insert messages from the assistant into + /// the conversation. + /// + /// + /// The textual content of the initial message. Currently, robust input including images and annotated text may only be provided via + /// a separate call to the create message API. + /// /// is null. - public ThreadInitializationMessage(MessageRole role, string content) + public ThreadMessageOptions(MessageRole role, string content) { Argument.AssertNotNull(content, nameof(content)); Role = role; Content = content; - FileIds = new ChangeTrackingList(); + Attachments = new ChangeTrackingList(); Metadata = new ChangeTrackingDictionary(); } - /// Initializes a new instance of . - /// The role associated with the assistant thread message. Currently, only 'user' is supported when providing initial messages to a new thread. - /// The textual content of the initial message. Currently, robust input including images and annotated text may only be provided via a separate call to the create message API. - /// - /// A list of file IDs that the assistant should use. Useful for tools like retrieval and code_interpreter that can - /// access files. + /// Initializes a new instance of . + /// + /// The role of the entity that is creating the message. Allowed values include: + /// - `user`: Indicates the message is sent by an actual user and should be used in most cases to represent user-generated messages. + /// - `assistant`: Indicates the message is generated by the assistant. Use this value to insert messages from the assistant into + /// the conversation. /// + /// + /// The textual content of the initial message. Currently, robust input including images and annotated text may only be provided via + /// a separate call to the create message API. + /// + /// A list of files attached to the message, and the tools they should be added to. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// Keeps track of any properties unknown to the library. - internal ThreadInitializationMessage(MessageRole role, string content, IList fileIds, IDictionary metadata, IDictionary serializedAdditionalRawData) + internal ThreadMessageOptions(MessageRole role, string content, IList attachments, IDictionary metadata, IDictionary serializedAdditionalRawData) { Role = role; Content = content; - FileIds = fileIds; + Attachments = attachments; Metadata = metadata; _serializedAdditionalRawData = serializedAdditionalRawData; } - /// Initializes a new instance of for deserialization. - internal ThreadInitializationMessage() + /// Initializes a new instance of for deserialization. + internal ThreadMessageOptions() { } - /// The role associated with the assistant thread message. Currently, only 'user' is supported when providing initial messages to a new thread. + /// + /// The role of the entity that is creating the message. Allowed values include: + /// - `user`: Indicates the message is sent by an actual user and should be used in most cases to represent user-generated messages. + /// - `assistant`: Indicates the message is generated by the assistant. Use this value to insert messages from the assistant into + /// the conversation. + /// public MessageRole Role { get; } - /// The textual content of the initial message. Currently, robust input including images and annotated text may only be provided via a separate call to the create message API. - public string Content { get; } /// - /// A list of file IDs that the assistant should use. Useful for tools like retrieval and code_interpreter that can - /// access files. + /// The textual content of the initial message. Currently, robust input including images and annotated text may only be provided via + /// a separate call to the create message API. /// - public IList FileIds { get; } + public string Content { get; } + /// A list of files attached to the message, and the tools they should be added to. + public IList Attachments { get; set; } /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. public IDictionary Metadata { get; set; } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadRun.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadRun.Serialization.cs index e9eeb6a58e88..fb70c33b0349 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadRun.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadRun.Serialization.cs @@ -76,13 +76,6 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WriteObjectValue(item, options); } writer.WriteEndArray(); - writer.WritePropertyName("file_ids"u8); - writer.WriteStartArray(); - foreach (var item in FileIds) - { - writer.WriteStringValue(item); - } - writer.WriteEndArray(); writer.WritePropertyName("created_at"u8); writer.WriteNumberValue(CreatedAt, "U"); if (ExpiresAt != null) @@ -130,6 +123,109 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit { writer.WriteNull("failed_at"); } + if (IncompleteDetails != null) + { + writer.WritePropertyName("incomplete_details"u8); + writer.WriteStringValue(IncompleteDetails.Value.ToString()); + } + else + { + writer.WriteNull("incomplete_details"); + } + if (Usage != null) + { + writer.WritePropertyName("usage"u8); + writer.WriteObjectValue(Usage, options); + } + else + { + writer.WriteNull("usage"); + } + if (Optional.IsDefined(Temperature)) + { + if (Temperature != null) + { + writer.WritePropertyName("temperature"u8); + writer.WriteNumberValue(Temperature.Value); + } + else + { + writer.WriteNull("temperature"); + } + } + if (Optional.IsDefined(TopP)) + { + if (TopP != null) + { + writer.WritePropertyName("top_p"u8); + writer.WriteNumberValue(TopP.Value); + } + else + { + writer.WriteNull("top_p"); + } + } + if (MaxPromptTokens != null) + { + writer.WritePropertyName("max_prompt_tokens"u8); + writer.WriteNumberValue(MaxPromptTokens.Value); + } + else + { + writer.WriteNull("max_prompt_tokens"); + } + if (MaxCompletionTokens != null) + { + writer.WritePropertyName("max_completion_tokens"u8); + writer.WriteNumberValue(MaxCompletionTokens.Value); + } + else + { + writer.WriteNull("max_completion_tokens"); + } + if (TruncationStrategy != null) + { + writer.WritePropertyName("truncation_strategy"u8); + writer.WriteObjectValue(TruncationStrategy, options); + } + else + { + writer.WriteNull("truncation_strategy"); + } + if (ToolChoice != null) + { + writer.WritePropertyName("tool_choice"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(ToolChoice); +#else + using (JsonDocument document = JsonDocument.Parse(ToolChoice, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + else + { + writer.WriteNull("tool_choice"); + } + writer.WritePropertyName("parallel_tool_calls"u8); + writer.WriteBooleanValue(ParallelToolCalls); + if (ResponseFormat != null) + { + writer.WritePropertyName("response_format"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(ResponseFormat); +#else + using (JsonDocument document = JsonDocument.Parse(ResponseFormat, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + else + { + writer.WriteNull("response_format"); + } if (Metadata != null && Optional.IsCollectionDefined(Metadata)) { writer.WritePropertyName("metadata"u8); @@ -192,13 +288,22 @@ internal static ThreadRun DeserializeThreadRun(JsonElement element, ModelReaderW string model = default; string instructions = default; IReadOnlyList tools = default; - IReadOnlyList fileIds = default; DateTimeOffset createdAt = default; DateTimeOffset? expiresAt = default; DateTimeOffset? startedAt = default; DateTimeOffset? completedAt = default; DateTimeOffset? cancelledAt = default; DateTimeOffset? failedAt = default; + IncompleteRunDetails? incompleteDetails = default; + RunCompletionUsage usage = default; + float? temperature = default; + float? topP = default; + int? maxPromptTokens = default; + int? maxCompletionTokens = default; + TruncationObject truncationStrategy = default; + BinaryData toolChoice = default; + bool parallelToolCalls = default; + BinaryData responseFormat = default; IReadOnlyDictionary metadata = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); @@ -269,16 +374,6 @@ internal static ThreadRun DeserializeThreadRun(JsonElement element, ModelReaderW tools = array; continue; } - if (property.NameEquals("file_ids"u8)) - { - List array = new List(); - foreach (var item in property.Value.EnumerateArray()) - { - array.Add(item.GetString()); - } - fileIds = array; - continue; - } if (property.NameEquals("created_at"u8)) { createdAt = DateTimeOffset.FromUnixTimeSeconds(property.Value.GetInt64()); @@ -309,6 +404,101 @@ internal static ThreadRun DeserializeThreadRun(JsonElement element, ModelReaderW DeserializeNullableDateTimeOffset(property, ref failedAt); continue; } + if (property.NameEquals("incomplete_details"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + incompleteDetails = null; + continue; + } + incompleteDetails = new IncompleteRunDetails(property.Value.GetString()); + continue; + } + if (property.NameEquals("usage"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + usage = null; + continue; + } + usage = RunCompletionUsage.DeserializeRunCompletionUsage(property.Value, options); + continue; + } + if (property.NameEquals("temperature"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + temperature = null; + continue; + } + temperature = property.Value.GetSingle(); + continue; + } + if (property.NameEquals("top_p"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + topP = null; + continue; + } + topP = property.Value.GetSingle(); + continue; + } + if (property.NameEquals("max_prompt_tokens"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + maxPromptTokens = null; + continue; + } + maxPromptTokens = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("max_completion_tokens"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + maxCompletionTokens = null; + continue; + } + maxCompletionTokens = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("truncation_strategy"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + truncationStrategy = null; + continue; + } + truncationStrategy = TruncationObject.DeserializeTruncationObject(property.Value, options); + continue; + } + if (property.NameEquals("tool_choice"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + toolChoice = null; + continue; + } + toolChoice = BinaryData.FromString(property.Value.GetRawText()); + continue; + } + if (property.NameEquals("parallel_tool_calls"u8)) + { + parallelToolCalls = property.Value.GetBoolean(); + continue; + } + if (property.NameEquals("response_format"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + responseFormat = null; + continue; + } + responseFormat = BinaryData.FromString(property.Value.GetRawText()); + continue; + } if (property.NameEquals("metadata"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) @@ -341,13 +531,22 @@ internal static ThreadRun DeserializeThreadRun(JsonElement element, ModelReaderW model, instructions, tools, - fileIds, createdAt, expiresAt, startedAt, completedAt, cancelledAt, failedAt, + incompleteDetails, + usage, + temperature, + topP, + maxPromptTokens, + maxCompletionTokens, + truncationStrategy, + toolChoice, + parallelToolCalls, + responseFormat, metadata, serializedAdditionalRawData); } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadRun.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadRun.cs index 31c97e45b559..16b96c0084e0 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadRun.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadRun.cs @@ -57,18 +57,25 @@ public partial class ThreadRun /// /// The overridden enabled tools used for this assistant thread run. /// 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 . + /// The available derived classes include , and . /// - /// A list of attached file IDs, ordered by creation date in ascending order. /// The Unix timestamp, in seconds, representing when this object was created. /// The Unix timestamp, in seconds, representing when this item expires. /// The Unix timestamp, in seconds, representing when this item was started. /// The Unix timestamp, in seconds, representing when this completed. /// The Unix timestamp, in seconds, representing when this was cancelled. /// The Unix timestamp, in seconds, representing when this failed. + /// Details on why the run is incomplete. Will be `null` if the run is not incomplete. + /// Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + /// The maximum number of prompt tokens specified to have been used over the course of the run. + /// The maximum number of completion tokens specified to have been used over the course of the run. + /// The strategy to use for dropping messages as the context windows moves forward. + /// Controls whether or not and which tool is called by the model. + /// Whether to enable parallel function calling during tool use. + /// The response format of the tool calls used in this run. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. - /// , , , , , or is null. - internal ThreadRun(string id, string threadId, string assistantId, RunStatus status, RunError lastError, string model, string instructions, IEnumerable tools, IEnumerable fileIds, DateTimeOffset createdAt, DateTimeOffset? expiresAt, DateTimeOffset? startedAt, DateTimeOffset? completedAt, DateTimeOffset? cancelledAt, DateTimeOffset? failedAt, IReadOnlyDictionary metadata) + /// , , , , or is null. + internal ThreadRun(string id, string threadId, string assistantId, RunStatus status, RunError lastError, string model, string instructions, IEnumerable tools, DateTimeOffset createdAt, DateTimeOffset? expiresAt, DateTimeOffset? startedAt, DateTimeOffset? completedAt, DateTimeOffset? cancelledAt, DateTimeOffset? failedAt, IncompleteRunDetails? incompleteDetails, RunCompletionUsage usage, int? maxPromptTokens, int? maxCompletionTokens, TruncationObject truncationStrategy, BinaryData toolChoice, bool parallelToolCalls, BinaryData responseFormat, IReadOnlyDictionary metadata) { Argument.AssertNotNull(id, nameof(id)); Argument.AssertNotNull(threadId, nameof(threadId)); @@ -76,7 +83,6 @@ internal ThreadRun(string id, string threadId, string assistantId, RunStatus sta Argument.AssertNotNull(model, nameof(model)); Argument.AssertNotNull(instructions, nameof(instructions)); Argument.AssertNotNull(tools, nameof(tools)); - Argument.AssertNotNull(fileIds, nameof(fileIds)); Id = id; ThreadId = threadId; @@ -86,13 +92,20 @@ internal ThreadRun(string id, string threadId, string assistantId, RunStatus sta Model = model; Instructions = instructions; Tools = tools.ToList(); - FileIds = fileIds.ToList(); CreatedAt = createdAt; ExpiresAt = expiresAt; StartedAt = startedAt; CompletedAt = completedAt; CancelledAt = cancelledAt; FailedAt = failedAt; + IncompleteDetails = incompleteDetails; + Usage = usage; + MaxPromptTokens = maxPromptTokens; + MaxCompletionTokens = maxCompletionTokens; + TruncationStrategy = truncationStrategy; + ToolChoice = toolChoice; + ParallelToolCalls = parallelToolCalls; + ResponseFormat = responseFormat; Metadata = metadata; } @@ -113,18 +126,27 @@ internal ThreadRun(string id, string threadId, string assistantId, RunStatus sta /// /// The overridden enabled tools used for this assistant thread run. /// 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 . + /// The available derived classes include , and . /// - /// A list of attached file IDs, ordered by creation date in ascending order. /// The Unix timestamp, in seconds, representing when this object was created. /// The Unix timestamp, in seconds, representing when this item expires. /// The Unix timestamp, in seconds, representing when this item was started. /// The Unix timestamp, in seconds, representing when this completed. /// The Unix timestamp, in seconds, representing when this was cancelled. /// The Unix timestamp, in seconds, representing when this failed. + /// Details on why the run is incomplete. Will be `null` if the run is not incomplete. + /// Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + /// The sampling temperature used for this run. If not set, defaults to 1. + /// The nucleus sampling value used for this run. If not set, defaults to 1. + /// The maximum number of prompt tokens specified to have been used over the course of the run. + /// The maximum number of completion tokens specified to have been used over the course of the run. + /// The strategy to use for dropping messages as the context windows moves forward. + /// Controls whether or not and which tool is called by the model. + /// Whether to enable parallel function calling during tool use. + /// The response format of the tool calls used in this run. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// Keeps track of any properties unknown to the library. - internal ThreadRun(string id, string @object, string threadId, string assistantId, RunStatus status, RequiredAction requiredAction, RunError lastError, string model, string instructions, IReadOnlyList tools, IReadOnlyList fileIds, DateTimeOffset createdAt, DateTimeOffset? expiresAt, DateTimeOffset? startedAt, DateTimeOffset? completedAt, DateTimeOffset? cancelledAt, DateTimeOffset? failedAt, IReadOnlyDictionary metadata, IDictionary serializedAdditionalRawData) + internal ThreadRun(string id, string @object, string threadId, string assistantId, RunStatus status, RequiredAction requiredAction, RunError lastError, string model, string instructions, IReadOnlyList tools, DateTimeOffset createdAt, DateTimeOffset? expiresAt, DateTimeOffset? startedAt, DateTimeOffset? completedAt, DateTimeOffset? cancelledAt, DateTimeOffset? failedAt, IncompleteRunDetails? incompleteDetails, RunCompletionUsage usage, float? temperature, float? topP, int? maxPromptTokens, int? maxCompletionTokens, TruncationObject truncationStrategy, BinaryData toolChoice, bool parallelToolCalls, BinaryData responseFormat, IReadOnlyDictionary metadata, IDictionary serializedAdditionalRawData) { Id = id; Object = @object; @@ -136,13 +158,22 @@ internal ThreadRun(string id, string @object, string threadId, string assistantI Model = model; Instructions = instructions; Tools = tools; - FileIds = fileIds; CreatedAt = createdAt; ExpiresAt = expiresAt; StartedAt = startedAt; CompletedAt = completedAt; CancelledAt = cancelledAt; FailedAt = failedAt; + IncompleteDetails = incompleteDetails; + Usage = usage; + Temperature = temperature; + TopP = topP; + MaxPromptTokens = maxPromptTokens; + MaxCompletionTokens = maxCompletionTokens; + TruncationStrategy = truncationStrategy; + ToolChoice = toolChoice; + ParallelToolCalls = parallelToolCalls; + ResponseFormat = responseFormat; Metadata = metadata; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -176,11 +207,9 @@ internal ThreadRun() /// /// The overridden enabled tools used for this assistant thread run. /// 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 . + /// The available derived classes include , and . /// public IReadOnlyList Tools { get; } - /// A list of attached file IDs, ordered by creation date in ascending order. - public IReadOnlyList FileIds { get; } /// The Unix timestamp, in seconds, representing when this object was created. public DateTimeOffset CreatedAt { get; } /// The Unix timestamp, in seconds, representing when this item expires. @@ -193,6 +222,112 @@ internal ThreadRun() public DateTimeOffset? CancelledAt { get; } /// The Unix timestamp, in seconds, representing when this failed. public DateTimeOffset? FailedAt { get; } + /// Details on why the run is incomplete. Will be `null` if the run is not incomplete. + public IncompleteRunDetails? IncompleteDetails { get; } + /// Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + public RunCompletionUsage Usage { get; } + /// The sampling temperature used for this run. If not set, defaults to 1. + public float? Temperature { get; } + /// The nucleus sampling value used for this run. If not set, defaults to 1. + public float? TopP { get; } + /// The maximum number of prompt tokens specified to have been used over the course of the run. + public int? MaxPromptTokens { get; } + /// The maximum number of completion tokens specified to have been used over the course of the run. + public int? MaxCompletionTokens { get; } + /// The strategy to use for dropping messages as the context windows moves forward. + public TruncationObject TruncationStrategy { get; } + /// + /// Controls whether or not and which tool is called by the model. + /// + /// To assign an object to this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// + /// Supported types: + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// 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 ToolChoice { get; } + /// Whether to enable parallel function calling during tool use. + public bool ParallelToolCalls { get; } + /// + /// The response format of the tool calls used in this run. + /// + /// To assign an object to this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// + /// Supported types: + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// 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 ResponseFormat { get; } /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. public IReadOnlyDictionary Metadata { get; } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadStreamEvent.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadStreamEvent.cs new file mode 100644 index 000000000000..172bd6c20d99 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ThreadStreamEvent.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.AI.OpenAI.Assistants +{ + /// Thread operation related streaming events. + public readonly partial struct ThreadStreamEvent : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public ThreadStreamEvent(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string ThreadCreatedValue = "thread.created"; + + /// Event sent when a new thread is created. The data of this event is of type AssistantThread. + public static ThreadStreamEvent ThreadCreated { get; } = new ThreadStreamEvent(ThreadCreatedValue); + /// Determines if two values are the same. + public static bool operator ==(ThreadStreamEvent left, ThreadStreamEvent right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(ThreadStreamEvent left, ThreadStreamEvent right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator ThreadStreamEvent(string value) => new ThreadStreamEvent(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ThreadStreamEvent other && Equals(other); + /// + public bool Equals(ThreadStreamEvent 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/ToolDefinition.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ToolDefinition.Serialization.cs index 94299b574576..17a5b3bc41b5 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ToolDefinition.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ToolDefinition.Serialization.cs @@ -78,8 +78,8 @@ internal static ToolDefinition DeserializeToolDefinition(JsonElement element, Mo switch (discriminator.GetString()) { case "code_interpreter": return CodeInterpreterToolDefinition.DeserializeCodeInterpreterToolDefinition(element, options); + case "file_search": return FileSearchToolDefinition.DeserializeFileSearchToolDefinition(element, options); case "function": return FunctionToolDefinition.DeserializeFunctionToolDefinition(element, options); - case "retrieval": return RetrievalToolDefinition.DeserializeRetrievalToolDefinition(element, options); } } return UnknownToolDefinition.DeserializeUnknownToolDefinition(element, options); diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ToolDefinition.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ToolDefinition.cs index b9d063fe1c0c..be4c9b0d6cbf 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ToolDefinition.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ToolDefinition.cs @@ -13,7 +13,7 @@ namespace Azure.AI.OpenAI.Assistants /// /// An abstract representation of an input tool definition that an assistant can use. /// 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 . + /// The available derived classes include , and . /// public abstract partial class ToolDefinition { diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantFile.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ToolResources.Serialization.cs similarity index 61% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantFile.Serialization.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ToolResources.Serialization.cs index 7f2c64263ba9..a2e53c705354 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/AssistantFile.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ToolResources.Serialization.cs @@ -13,11 +13,11 @@ namespace Azure.AI.OpenAI.Assistants { - public partial class AssistantFile : IUtf8JsonSerializable, IJsonModel + public partial class ToolResources : IUtf8JsonSerializable, IJsonModel { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); - void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) { writer.WriteStartObject(); JsonModelWriteCore(writer, options); @@ -28,20 +28,22 @@ void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOpt /// 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; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(AssistantFile)} does not support writing '{format}' format."); + throw new FormatException($"The model {nameof(ToolResources)} does not support writing '{format}' format."); } - writer.WritePropertyName("id"u8); - writer.WriteStringValue(Id); - writer.WritePropertyName("object"u8); - writer.WriteStringValue(Object); - writer.WritePropertyName("created_at"u8); - writer.WriteNumberValue(CreatedAt, "U"); - writer.WritePropertyName("assistant_id"u8); - writer.WriteStringValue(AssistantId); + if (Optional.IsDefined(CodeInterpreter)) + { + writer.WritePropertyName("code_interpreter"u8); + writer.WriteObjectValue(CodeInterpreter, options); + } + if (Optional.IsDefined(FileSearch)) + { + writer.WritePropertyName("file_search"u8); + writer.WriteObjectValue(FileSearch, options); + } if (options.Format != "W" && _serializedAdditionalRawData != null) { foreach (var item in _serializedAdditionalRawData) @@ -59,19 +61,19 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } } - AssistantFile IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + ToolResources IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(AssistantFile)} does not support reading '{format}' format."); + throw new FormatException($"The model {nameof(ToolResources)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return DeserializeAssistantFile(document.RootElement, options); + return DeserializeToolResources(document.RootElement, options); } - internal static AssistantFile DeserializeAssistantFile(JsonElement element, ModelReaderWriterOptions options = null) + internal static ToolResources DeserializeToolResources(JsonElement element, ModelReaderWriterOptions options = null) { options ??= ModelSerializationExtensions.WireOptions; @@ -79,32 +81,28 @@ internal static AssistantFile DeserializeAssistantFile(JsonElement element, Mode { return null; } - string id = default; - string @object = default; - DateTimeOffset createdAt = default; - string assistantId = default; + CodeInterpreterToolResource codeInterpreter = default; + FileSearchToolResource fileSearch = 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("object"u8)) + if (property.NameEquals("code_interpreter"u8)) { - @object = property.Value.GetString(); - continue; - } - if (property.NameEquals("created_at"u8)) - { - createdAt = DateTimeOffset.FromUnixTimeSeconds(property.Value.GetInt64()); + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + codeInterpreter = CodeInterpreterToolResource.DeserializeCodeInterpreterToolResource(property.Value, options); continue; } - if (property.NameEquals("assistant_id"u8)) + if (property.NameEquals("file_search"u8)) { - assistantId = property.Value.GetString(); + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + fileSearch = FileSearchToolResource.DeserializeFileSearchToolResource(property.Value, options); continue; } if (options.Format != "W") @@ -113,46 +111,46 @@ internal static AssistantFile DeserializeAssistantFile(JsonElement element, Mode } } serializedAdditionalRawData = rawDataDictionary; - return new AssistantFile(id, @object, createdAt, assistantId, serializedAdditionalRawData); + return new ToolResources(codeInterpreter, fileSearch, serializedAdditionalRawData); } - BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + 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(AssistantFile)} does not support writing '{options.Format}' format."); + throw new FormatException($"The model {nameof(ToolResources)} does not support writing '{options.Format}' format."); } } - AssistantFile IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + ToolResources IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; switch (format) { case "J": { using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeAssistantFile(document.RootElement, options); + return DeserializeToolResources(document.RootElement, options); } default: - throw new FormatException($"The model {nameof(AssistantFile)} does not support reading '{options.Format}' format."); + throw new FormatException($"The model {nameof(ToolResources)} does not support reading '{options.Format}' format."); } } - string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; /// Deserializes the model from a raw response. /// The response to deserialize the model from. - internal static AssistantFile FromResponse(Response response) + internal static ToolResources FromResponse(Response response) { using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeAssistantFile(document.RootElement); + return DeserializeToolResources(document.RootElement); } /// Convert into a . diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ToolResources.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ToolResources.cs new file mode 100644 index 000000000000..408316763e48 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/ToolResources.cs @@ -0,0 +1,73 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// + /// A set of resources that are used by the assistant's tools. The resources are specific to the type of + /// tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` + /// tool requires a list of vector store IDs. + /// + public partial class ToolResources + { + /// + /// 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 ToolResources() + { + } + + /// Initializes a new instance of . + /// Resources to be used by the `code_interpreter tool` consisting of file IDs. + /// Resources to be used by the `file_search` tool consisting of vector store IDs. + /// Keeps track of any properties unknown to the library. + internal ToolResources(CodeInterpreterToolResource codeInterpreter, FileSearchToolResource fileSearch, IDictionary serializedAdditionalRawData) + { + CodeInterpreter = codeInterpreter; + FileSearch = fileSearch; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Resources to be used by the `code_interpreter tool` consisting of file IDs. + public CodeInterpreterToolResource CodeInterpreter { get; } + /// Resources to be used by the `file_search` tool consisting of vector store IDs. + public FileSearchToolResource FileSearch { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/TruncationObject.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/TruncationObject.Serialization.cs new file mode 100644 index 000000000000..a4ef2894100f --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/TruncationObject.Serialization.cs @@ -0,0 +1,165 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class TruncationObject : 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(TruncationObject)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type.ToString()); + if (Optional.IsDefined(LastMessages)) + { + if (LastMessages != null) + { + writer.WritePropertyName("last_messages"u8); + writer.WriteNumberValue(LastMessages.Value); + } + else + { + writer.WriteNull("last_messages"); + } + } + 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 + } + } + } + + TruncationObject 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(TruncationObject)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeTruncationObject(document.RootElement, options); + } + + internal static TruncationObject DeserializeTruncationObject(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + TruncationStrategy type = default; + int? lastMessages = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("type"u8)) + { + type = new TruncationStrategy(property.Value.GetString()); + continue; + } + if (property.NameEquals("last_messages"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + lastMessages = null; + continue; + } + lastMessages = property.Value.GetInt32(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new TruncationObject(type, lastMessages, 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(TruncationObject)} does not support writing '{options.Format}' format."); + } + } + + TruncationObject 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 DeserializeTruncationObject(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(TruncationObject)} 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 TruncationObject FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeTruncationObject(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/TruncationObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/TruncationObject.cs new file mode 100644 index 000000000000..a662e1b7761f --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/TruncationObject.cs @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// + /// Controls for how a thread will be truncated prior to the run. Use this to control the initial + /// context window of the run. + /// + public partial class TruncationObject + { + /// + /// 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 truncation strategy to use for the thread. The default is `auto`. If set to `last_messages`, the thread will + /// be truncated to the `lastMessages` count most recent messages in the thread. When set to `auto`, messages in the middle of the thread + /// will be dropped to fit the context length of the model, `max_prompt_tokens`. + /// + public TruncationObject(TruncationStrategy type) + { + Type = type; + } + + /// Initializes a new instance of . + /// + /// The truncation strategy to use for the thread. The default is `auto`. If set to `last_messages`, the thread will + /// be truncated to the `lastMessages` count most recent messages in the thread. When set to `auto`, messages in the middle of the thread + /// will be dropped to fit the context length of the model, `max_prompt_tokens`. + /// + /// The number of most recent messages from the thread when constructing the context for the run. + /// Keeps track of any properties unknown to the library. + internal TruncationObject(TruncationStrategy type, int? lastMessages, IDictionary serializedAdditionalRawData) + { + Type = type; + LastMessages = lastMessages; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal TruncationObject() + { + } + + /// + /// The truncation strategy to use for the thread. The default is `auto`. If set to `last_messages`, the thread will + /// be truncated to the `lastMessages` count most recent messages in the thread. When set to `auto`, messages in the middle of the thread + /// will be dropped to fit the context length of the model, `max_prompt_tokens`. + /// + public TruncationStrategy Type { get; set; } + /// The number of most recent messages from the thread when constructing the context for the run. + public int? LastMessages { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/TruncationStrategy.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/TruncationStrategy.cs new file mode 100644 index 000000000000..7e51ad3d3242 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/TruncationStrategy.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 Azure.AI.OpenAI.Assistants +{ + /// Possible truncation strategies for the thread. + public readonly partial struct TruncationStrategy : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public TruncationStrategy(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string AutoValue = "auto"; + private const string LastMessagesValue = "last_messages"; + + /// Default value. Messages in the middle of the thread will be dropped to fit the context length of the model. + public static TruncationStrategy Auto { get; } = new TruncationStrategy(AutoValue); + /// The thread will truncate to the `lastMessages` count of recent messages. + public static TruncationStrategy LastMessages { get; } = new TruncationStrategy(LastMessagesValue); + /// Determines if two values are the same. + public static bool operator ==(TruncationStrategy left, TruncationStrategy right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(TruncationStrategy left, TruncationStrategy right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator TruncationStrategy(string value) => new TruncationStrategy(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is TruncationStrategy other && Equals(other); + /// + public bool Equals(TruncationStrategy 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownAssistantsApiResponseFormat.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownAssistantsApiResponseFormat.Serialization.cs new file mode 100644 index 000000000000..4fb52f3a2e5c --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownAssistantsApiResponseFormat.Serialization.cs @@ -0,0 +1,130 @@ +// 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.AI.OpenAI.Assistants +{ + internal partial class UnknownAssistantsApiResponseFormat : 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(AssistantsApiResponseFormat)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + } + + AssistantsApiResponseFormat 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(AssistantsApiResponseFormat)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeAssistantsApiResponseFormat(document.RootElement, options); + } + + internal static UnknownAssistantsApiResponseFormat DeserializeUnknownAssistantsApiResponseFormat(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ApiResponseFormat? type = "Unknown"; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("type"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + type = new ApiResponseFormat(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new UnknownAssistantsApiResponseFormat(type, 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(AssistantsApiResponseFormat)} does not support writing '{options.Format}' format."); + } + } + + AssistantsApiResponseFormat 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 DeserializeAssistantsApiResponseFormat(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(AssistantsApiResponseFormat)} 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 UnknownAssistantsApiResponseFormat FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeUnknownAssistantsApiResponseFormat(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownAssistantsApiResponseFormat.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownAssistantsApiResponseFormat.cs new file mode 100644 index 000000000000..8e79946b17e3 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownAssistantsApiResponseFormat.cs @@ -0,0 +1,28 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Unknown version of AssistantsApiResponseFormat. + internal partial class UnknownAssistantsApiResponseFormat : AssistantsApiResponseFormat + { + /// Initializes a new instance of . + /// Must be one of `text`, `json_object` or `json_schema` . + /// Keeps track of any properties unknown to the library. + internal UnknownAssistantsApiResponseFormat(ApiResponseFormat? type, IDictionary serializedAdditionalRawData) : base(type, serializedAdditionalRawData) + { + } + + /// Initializes a new instance of for deserialization. + internal UnknownAssistantsApiResponseFormat() + { + } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageDeltaContent.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageDeltaContent.Serialization.cs new file mode 100644 index 000000000000..58eb97f774a0 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageDeltaContent.Serialization.cs @@ -0,0 +1,132 @@ +// 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.AI.OpenAI.Assistants +{ + internal partial class UnknownMessageDeltaContent : 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(MessageDeltaContent)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + } + + MessageDeltaContent 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(MessageDeltaContent)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMessageDeltaContent(document.RootElement, options); + } + + internal static UnknownMessageDeltaContent DeserializeUnknownMessageDeltaContent(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + int index = default; + string type = "Unknown"; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("index"u8)) + { + index = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new UnknownMessageDeltaContent(index, type, 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(MessageDeltaContent)} does not support writing '{options.Format}' format."); + } + } + + MessageDeltaContent 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 DeserializeMessageDeltaContent(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MessageDeltaContent)} 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 UnknownMessageDeltaContent FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeUnknownMessageDeltaContent(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageDeltaContent.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageDeltaContent.cs new file mode 100644 index 000000000000..7b50c79a9122 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageDeltaContent.cs @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Unknown version of MessageDeltaContent. + internal partial class UnknownMessageDeltaContent : MessageDeltaContent + { + /// Initializes a new instance of . + /// The index of the content part of the message. + /// The type of content for this content part. + /// Keeps track of any properties unknown to the library. + internal UnknownMessageDeltaContent(int index, string type, IDictionary serializedAdditionalRawData) : base(index, type, serializedAdditionalRawData) + { + } + + /// Initializes a new instance of for deserialization. + internal UnknownMessageDeltaContent() + { + } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageDeltaTextAnnotation.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageDeltaTextAnnotation.Serialization.cs new file mode 100644 index 000000000000..a3520c9dcea1 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageDeltaTextAnnotation.Serialization.cs @@ -0,0 +1,132 @@ +// 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.AI.OpenAI.Assistants +{ + internal partial class UnknownMessageDeltaTextAnnotation : 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(MessageDeltaTextAnnotation)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + } + + MessageDeltaTextAnnotation 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(MessageDeltaTextAnnotation)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMessageDeltaTextAnnotation(document.RootElement, options); + } + + internal static UnknownMessageDeltaTextAnnotation DeserializeUnknownMessageDeltaTextAnnotation(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + int index = default; + string type = "Unknown"; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("index"u8)) + { + index = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new UnknownMessageDeltaTextAnnotation(index, type, 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(MessageDeltaTextAnnotation)} does not support writing '{options.Format}' format."); + } + } + + MessageDeltaTextAnnotation 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 DeserializeMessageDeltaTextAnnotation(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MessageDeltaTextAnnotation)} 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 UnknownMessageDeltaTextAnnotation FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeUnknownMessageDeltaTextAnnotation(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageDeltaTextAnnotation.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageDeltaTextAnnotation.cs new file mode 100644 index 000000000000..3a65e8f866b4 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageDeltaTextAnnotation.cs @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Unknown version of MessageDeltaTextAnnotation. + internal partial class UnknownMessageDeltaTextAnnotation : MessageDeltaTextAnnotation + { + /// Initializes a new instance of . + /// The index of the annotation within a text content part. + /// The type of the text content annotation. + /// Keeps track of any properties unknown to the library. + internal UnknownMessageDeltaTextAnnotation(int index, string type, IDictionary serializedAdditionalRawData) : base(index, type, serializedAdditionalRawData) + { + } + + /// Initializes a new instance of for deserialization. + internal UnknownMessageDeltaTextAnnotation() + { + } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageTextAnnotation.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageTextAnnotation.Serialization.cs index 1a27fc0aab34..8492c2f302f8 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageTextAnnotation.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageTextAnnotation.Serialization.cs @@ -59,8 +59,6 @@ internal static UnknownMessageTextAnnotation DeserializeUnknownMessageTextAnnota } string type = "Unknown"; string text = default; - int startIndex = default; - int endIndex = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); foreach (var property in element.EnumerateObject()) @@ -75,23 +73,13 @@ internal static UnknownMessageTextAnnotation DeserializeUnknownMessageTextAnnota text = property.Value.GetString(); continue; } - if (property.NameEquals("start_index"u8)) - { - startIndex = property.Value.GetInt32(); - continue; - } - if (property.NameEquals("end_index"u8)) - { - endIndex = property.Value.GetInt32(); - continue; - } if (options.Format != "W") { rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); } } serializedAdditionalRawData = rawDataDictionary; - return new UnknownMessageTextAnnotation(type, text, startIndex, endIndex, serializedAdditionalRawData); + return new UnknownMessageTextAnnotation(type, text, serializedAdditionalRawData); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageTextAnnotation.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageTextAnnotation.cs index 707b99138307..8df46b4ee1f3 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageTextAnnotation.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownMessageTextAnnotation.cs @@ -16,10 +16,8 @@ internal partial class UnknownMessageTextAnnotation : MessageTextAnnotation /// Initializes a new instance of . /// The object type. /// The textual content associated with this text annotation item. - /// The first text index associated with this text annotation. - /// The last text index associated with this text annotation. /// Keeps track of any properties unknown to the library. - internal UnknownMessageTextAnnotation(string type, string text, int startIndex, int endIndex, IDictionary serializedAdditionalRawData) : base(type, text, startIndex, endIndex, serializedAdditionalRawData) + internal UnknownMessageTextAnnotation(string type, string text, IDictionary serializedAdditionalRawData) : base(type, text, serializedAdditionalRawData) { } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaCodeInterpreterOutput.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaCodeInterpreterOutput.Serialization.cs new file mode 100644 index 000000000000..3ce8d7b7753c --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaCodeInterpreterOutput.Serialization.cs @@ -0,0 +1,132 @@ +// 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.AI.OpenAI.Assistants +{ + internal partial class UnknownRunStepDeltaCodeInterpreterOutput : 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(RunStepDeltaCodeInterpreterOutput)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + } + + RunStepDeltaCodeInterpreterOutput 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(RunStepDeltaCodeInterpreterOutput)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDeltaCodeInterpreterOutput(document.RootElement, options); + } + + internal static UnknownRunStepDeltaCodeInterpreterOutput DeserializeUnknownRunStepDeltaCodeInterpreterOutput(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + int index = default; + string type = "Unknown"; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("index"u8)) + { + index = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new UnknownRunStepDeltaCodeInterpreterOutput(index, type, 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(RunStepDeltaCodeInterpreterOutput)} does not support writing '{options.Format}' format."); + } + } + + RunStepDeltaCodeInterpreterOutput 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 DeserializeRunStepDeltaCodeInterpreterOutput(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDeltaCodeInterpreterOutput)} 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 UnknownRunStepDeltaCodeInterpreterOutput FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeUnknownRunStepDeltaCodeInterpreterOutput(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaCodeInterpreterOutput.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaCodeInterpreterOutput.cs new file mode 100644 index 000000000000..cda7227367bc --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaCodeInterpreterOutput.cs @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Unknown version of RunStepDeltaCodeInterpreterOutput. + internal partial class UnknownRunStepDeltaCodeInterpreterOutput : RunStepDeltaCodeInterpreterOutput + { + /// Initializes a new instance of . + /// The index of the output in the streaming run step tool call's Code Interpreter outputs array. + /// The type of the streaming run step tool call's Code Interpreter output. + /// Keeps track of any properties unknown to the library. + internal UnknownRunStepDeltaCodeInterpreterOutput(int index, string type, IDictionary serializedAdditionalRawData) : base(index, type, serializedAdditionalRawData) + { + } + + /// Initializes a new instance of for deserialization. + internal UnknownRunStepDeltaCodeInterpreterOutput() + { + } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RetrievalToolDefinition.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaDetail.Serialization.cs similarity index 59% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RetrievalToolDefinition.Serialization.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaDetail.Serialization.cs index c706bdbf9bab..ef29b0d92f80 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/RetrievalToolDefinition.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaDetail.Serialization.cs @@ -13,11 +13,11 @@ namespace Azure.AI.OpenAI.Assistants { - public partial class RetrievalToolDefinition : IUtf8JsonSerializable, IJsonModel + internal partial class UnknownRunStepDeltaDetail : IUtf8JsonSerializable, IJsonModel { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); - void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) { writer.WriteStartObject(); JsonModelWriteCore(writer, options); @@ -28,28 +28,28 @@ void IJsonModel.Write(Utf8JsonWriter writer, ModelReade /// 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; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(RetrievalToolDefinition)} does not support writing '{format}' format."); + throw new FormatException($"The model {nameof(RunStepDeltaDetail)} does not support writing '{format}' format."); } base.JsonModelWriteCore(writer, options); } - RetrievalToolDefinition IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + RunStepDeltaDetail IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(RetrievalToolDefinition)} does not support reading '{format}' format."); + throw new FormatException($"The model {nameof(RunStepDeltaDetail)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return DeserializeRetrievalToolDefinition(document.RootElement, options); + return DeserializeRunStepDeltaDetail(document.RootElement, options); } - internal static RetrievalToolDefinition DeserializeRetrievalToolDefinition(JsonElement element, ModelReaderWriterOptions options = null) + internal static UnknownRunStepDeltaDetail DeserializeUnknownRunStepDeltaDetail(JsonElement element, ModelReaderWriterOptions options = null) { options ??= ModelSerializationExtensions.WireOptions; @@ -57,7 +57,7 @@ internal static RetrievalToolDefinition DeserializeRetrievalToolDefinition(JsonE { return null; } - string type = default; + string type = "Unknown"; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); foreach (var property in element.EnumerateObject()) @@ -73,53 +73,53 @@ internal static RetrievalToolDefinition DeserializeRetrievalToolDefinition(JsonE } } serializedAdditionalRawData = rawDataDictionary; - return new RetrievalToolDefinition(type, serializedAdditionalRawData); + return new UnknownRunStepDeltaDetail(type, serializedAdditionalRawData); } - BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + 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(RetrievalToolDefinition)} does not support writing '{options.Format}' format."); + throw new FormatException($"The model {nameof(RunStepDeltaDetail)} does not support writing '{options.Format}' format."); } } - RetrievalToolDefinition IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + RunStepDeltaDetail IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; switch (format) { case "J": { using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeRetrievalToolDefinition(document.RootElement, options); + return DeserializeRunStepDeltaDetail(document.RootElement, options); } default: - throw new FormatException($"The model {nameof(RetrievalToolDefinition)} does not support reading '{options.Format}' format."); + throw new FormatException($"The model {nameof(RunStepDeltaDetail)} does not support reading '{options.Format}' format."); } } - string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; /// Deserializes the model from a raw response. /// The response to deserialize the model from. - internal static new RetrievalToolDefinition FromResponse(Response response) + internal static new UnknownRunStepDeltaDetail FromResponse(Response response) { using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeRetrievalToolDefinition(document.RootElement); + return DeserializeUnknownRunStepDeltaDetail(document.RootElement); } /// Convert into a . internal override RequestContent ToRequestContent() { var content = new Utf8JsonRequestContent(); - content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); + content.JsonWriter.WriteObjectValue(this, ModelSerializationExtensions.WireOptions); return content; } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaDetail.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaDetail.cs new file mode 100644 index 000000000000..bf9efec7d936 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaDetail.cs @@ -0,0 +1,28 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Unknown version of RunStepDeltaDetail. + internal partial class UnknownRunStepDeltaDetail : RunStepDeltaDetail + { + /// Initializes a new instance of . + /// The object type for the run step detail object. + /// Keeps track of any properties unknown to the library. + internal UnknownRunStepDeltaDetail(string type, IDictionary serializedAdditionalRawData) : base(type, serializedAdditionalRawData) + { + } + + /// Initializes a new instance of for deserialization. + internal UnknownRunStepDeltaDetail() + { + } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaToolCall.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaToolCall.Serialization.cs new file mode 100644 index 000000000000..2841df37028f --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaToolCall.Serialization.cs @@ -0,0 +1,138 @@ +// 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.AI.OpenAI.Assistants +{ + internal partial class UnknownRunStepDeltaToolCall : 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(RunStepDeltaToolCall)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + } + + RunStepDeltaToolCall 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(RunStepDeltaToolCall)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeRunStepDeltaToolCall(document.RootElement, options); + } + + internal static UnknownRunStepDeltaToolCall DeserializeUnknownRunStepDeltaToolCall(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + int index = default; + string id = default; + string type = "Unknown"; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("index"u8)) + { + index = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("id"u8)) + { + id = property.Value.GetString(); + continue; + } + if (property.NameEquals("type"u8)) + { + type = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new UnknownRunStepDeltaToolCall(index, id, type, 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(RunStepDeltaToolCall)} does not support writing '{options.Format}' format."); + } + } + + RunStepDeltaToolCall 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 DeserializeRunStepDeltaToolCall(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(RunStepDeltaToolCall)} 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 UnknownRunStepDeltaToolCall FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeUnknownRunStepDeltaToolCall(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaToolCall.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaToolCall.cs new file mode 100644 index 000000000000..01e29a7c3518 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownRunStepDeltaToolCall.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 Azure.AI.OpenAI.Assistants +{ + /// Unknown version of RunStepDeltaToolCall. + internal partial class UnknownRunStepDeltaToolCall : RunStepDeltaToolCall + { + /// Initializes a new instance of . + /// The index of the tool call detail in the run step's tool_calls array. + /// The ID of the tool call, used when submitting outputs to the run. + /// The type of the tool call detail item in a streaming run step's details. + /// Keeps track of any properties unknown to the library. + internal UnknownRunStepDeltaToolCall(int index, string id, string type, IDictionary serializedAdditionalRawData) : base(index, id, type, serializedAdditionalRawData) + { + } + + /// Initializes a new instance of for deserialization. + internal UnknownRunStepDeltaToolCall() + { + } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownVectorStoreChunkingStrategyRequest.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownVectorStoreChunkingStrategyRequest.Serialization.cs new file mode 100644 index 000000000000..fa6625d4e845 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownVectorStoreChunkingStrategyRequest.Serialization.cs @@ -0,0 +1,126 @@ +// 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.AI.OpenAI.Assistants +{ + internal partial class UnknownVectorStoreChunkingStrategyRequest : 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(VectorStoreChunkingStrategyRequest)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + } + + VectorStoreChunkingStrategyRequest 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(VectorStoreChunkingStrategyRequest)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStoreChunkingStrategyRequest(document.RootElement, options); + } + + internal static UnknownVectorStoreChunkingStrategyRequest DeserializeUnknownVectorStoreChunkingStrategyRequest(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + VectorStoreChunkingStrategyRequestType type = "Unknown"; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("type"u8)) + { + type = new VectorStoreChunkingStrategyRequestType(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new UnknownVectorStoreChunkingStrategyRequest(type, 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(VectorStoreChunkingStrategyRequest)} does not support writing '{options.Format}' format."); + } + } + + VectorStoreChunkingStrategyRequest 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 DeserializeVectorStoreChunkingStrategyRequest(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStoreChunkingStrategyRequest)} 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 UnknownVectorStoreChunkingStrategyRequest FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeUnknownVectorStoreChunkingStrategyRequest(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownVectorStoreChunkingStrategyRequest.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownVectorStoreChunkingStrategyRequest.cs new file mode 100644 index 000000000000..287e2c3a3496 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownVectorStoreChunkingStrategyRequest.cs @@ -0,0 +1,28 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Unknown version of VectorStoreChunkingStrategyRequest. + internal partial class UnknownVectorStoreChunkingStrategyRequest : VectorStoreChunkingStrategyRequest + { + /// Initializes a new instance of . + /// The object type. + /// Keeps track of any properties unknown to the library. + internal UnknownVectorStoreChunkingStrategyRequest(VectorStoreChunkingStrategyRequestType type, IDictionary serializedAdditionalRawData) : base(type, serializedAdditionalRawData) + { + } + + /// Initializes a new instance of for deserialization. + internal UnknownVectorStoreChunkingStrategyRequest() + { + } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownVectorStoreChunkingStrategyResponse.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownVectorStoreChunkingStrategyResponse.Serialization.cs new file mode 100644 index 000000000000..23b989280aa8 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownVectorStoreChunkingStrategyResponse.Serialization.cs @@ -0,0 +1,126 @@ +// 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.AI.OpenAI.Assistants +{ + internal partial class UnknownVectorStoreChunkingStrategyResponse : 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(VectorStoreChunkingStrategyResponse)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + } + + VectorStoreChunkingStrategyResponse 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(VectorStoreChunkingStrategyResponse)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStoreChunkingStrategyResponse(document.RootElement, options); + } + + internal static UnknownVectorStoreChunkingStrategyResponse DeserializeUnknownVectorStoreChunkingStrategyResponse(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + VectorStoreChunkingStrategyResponseType type = "Unknown"; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("type"u8)) + { + type = new VectorStoreChunkingStrategyResponseType(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new UnknownVectorStoreChunkingStrategyResponse(type, 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(VectorStoreChunkingStrategyResponse)} does not support writing '{options.Format}' format."); + } + } + + VectorStoreChunkingStrategyResponse 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 DeserializeVectorStoreChunkingStrategyResponse(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStoreChunkingStrategyResponse)} 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 UnknownVectorStoreChunkingStrategyResponse FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeUnknownVectorStoreChunkingStrategyResponse(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownVectorStoreChunkingStrategyResponse.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownVectorStoreChunkingStrategyResponse.cs new file mode 100644 index 000000000000..d81dc4925d3c --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UnknownVectorStoreChunkingStrategyResponse.cs @@ -0,0 +1,28 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Unknown version of VectorStoreChunkingStrategyResponse. + internal partial class UnknownVectorStoreChunkingStrategyResponse : VectorStoreChunkingStrategyResponse + { + /// Initializes a new instance of . + /// The object type. + /// Keeps track of any properties unknown to the library. + internal UnknownVectorStoreChunkingStrategyResponse(VectorStoreChunkingStrategyResponseType type, IDictionary serializedAdditionalRawData) : base(type, serializedAdditionalRawData) + { + } + + /// Initializes a new instance of for deserialization. + internal UnknownVectorStoreChunkingStrategyResponse() + { + } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateAssistantOptions.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateAssistantOptions.Serialization.cs index 921a89074dc7..2806542a5d84 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateAssistantOptions.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateAssistantOptions.Serialization.cs @@ -85,15 +85,53 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WriteEndArray(); } - if (Optional.IsCollectionDefined(FileIds)) + if (Optional.IsDefined(ToolResources)) { - writer.WritePropertyName("file_ids"u8); - writer.WriteStartArray(); - foreach (var item in FileIds) + writer.WritePropertyName("tool_resources"u8); + writer.WriteObjectValue(ToolResources, options); + } + if (Optional.IsDefined(Temperature)) + { + if (Temperature != null) { - writer.WriteStringValue(item); + writer.WritePropertyName("temperature"u8); + writer.WriteNumberValue(Temperature.Value); + } + else + { + writer.WriteNull("temperature"); + } + } + if (Optional.IsDefined(TopP)) + { + if (TopP != null) + { + writer.WritePropertyName("top_p"u8); + writer.WriteNumberValue(TopP.Value); + } + else + { + writer.WriteNull("top_p"); + } + } + if (Optional.IsDefined(ResponseFormat)) + { + if (ResponseFormat != null) + { + writer.WritePropertyName("response_format"u8); +#if NET6_0_OR_GREATER + writer.WriteRawValue(ResponseFormat); +#else + using (JsonDocument document = JsonDocument.Parse(ResponseFormat, ModelSerializationExtensions.JsonDocumentOptions)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + else + { + writer.WriteNull("response_format"); } - writer.WriteEndArray(); } if (Optional.IsCollectionDefined(Metadata)) { @@ -155,7 +193,10 @@ internal static UpdateAssistantOptions DeserializeUpdateAssistantOptions(JsonEle string description = default; string instructions = default; IList tools = default; - IList fileIds = default; + UpdateToolResourcesOptions toolResources = default; + float? temperature = default; + float? topP = default; + BinaryData responseFormat = default; IDictionary metadata = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); @@ -210,18 +251,43 @@ internal static UpdateAssistantOptions DeserializeUpdateAssistantOptions(JsonEle tools = array; continue; } - if (property.NameEquals("file_ids"u8)) + if (property.NameEquals("tool_resources"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } - List array = new List(); - foreach (var item in property.Value.EnumerateArray()) + toolResources = UpdateToolResourcesOptions.DeserializeUpdateToolResourcesOptions(property.Value, options); + continue; + } + if (property.NameEquals("temperature"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) { - array.Add(item.GetString()); + temperature = null; + continue; + } + temperature = property.Value.GetSingle(); + continue; + } + if (property.NameEquals("top_p"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + topP = null; + continue; + } + topP = property.Value.GetSingle(); + continue; + } + if (property.NameEquals("response_format"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + responseFormat = null; + continue; } - fileIds = array; + responseFormat = BinaryData.FromString(property.Value.GetRawText()); continue; } if (property.NameEquals("metadata"u8)) @@ -250,7 +316,10 @@ internal static UpdateAssistantOptions DeserializeUpdateAssistantOptions(JsonEle description, instructions, tools ?? new ChangeTrackingList(), - fileIds ?? new ChangeTrackingList(), + toolResources, + temperature, + topP, + responseFormat, metadata ?? new ChangeTrackingDictionary(), serializedAdditionalRawData); } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateAssistantOptions.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateAssistantOptions.cs index 85770c825c21..b3b50cb3bb79 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateAssistantOptions.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateAssistantOptions.cs @@ -49,7 +49,6 @@ public partial class UpdateAssistantOptions public UpdateAssistantOptions() { Tools = new ChangeTrackingList(); - FileIds = new ChangeTrackingList(); Metadata = new ChangeTrackingDictionary(); } @@ -61,19 +60,36 @@ public UpdateAssistantOptions() /// /// The modified collection of tools to enable for the assistant. /// 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 . + /// The available derived classes include , and . /// - /// The modified list of previously uploaded fileIDs to attach to the assistant. + /// + /// A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, + /// the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + /// + /// + /// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, + /// while lower values like 0.2 will make it more focused and deterministic. + /// + /// + /// An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. + /// So 0.1 means only the tokens comprising the top 10% probability mass are considered. + /// + /// We generally recommend altering this or temperature but not both. + /// + /// The response format of the tool calls used by this assistant. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// Keeps track of any properties unknown to the library. - internal UpdateAssistantOptions(string model, string name, string description, string instructions, IList tools, IList fileIds, IDictionary metadata, IDictionary serializedAdditionalRawData) + internal UpdateAssistantOptions(string model, string name, string description, string instructions, IList tools, UpdateToolResourcesOptions toolResources, float? temperature, float? topP, BinaryData responseFormat, IDictionary metadata, IDictionary serializedAdditionalRawData) { Model = model; Name = name; Description = description; Instructions = instructions; Tools = tools; - FileIds = fileIds; + ToolResources = toolResources; + Temperature = temperature; + TopP = topP; + ResponseFormat = responseFormat; Metadata = metadata; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -89,11 +105,71 @@ internal UpdateAssistantOptions(string model, string name, string description, s /// /// The modified collection of tools to enable for the assistant. /// 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 . + /// The available derived classes include , and . /// public IList Tools { get; } - /// The modified list of previously uploaded fileIDs to attach to the assistant. - public IList FileIds { get; } + /// + /// A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, + /// the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + /// + public UpdateToolResourcesOptions ToolResources { get; set; } + /// + /// What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, + /// while lower values like 0.2 will make it more focused and deterministic. + /// + public float? Temperature { get; set; } + /// + /// An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. + /// So 0.1 means only the tokens comprising the top 10% probability mass are considered. + /// + /// We generally recommend altering this or temperature but not both. + /// + public float? TopP { get; set; } + /// + /// The response format of the tool calls used by this assistant. + /// + /// To assign an object to this property use . + /// + /// + /// To assign an already formatted json string to this property use . + /// + /// + /// + /// Supported types: + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// 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 ResponseFormat { get; set; } /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. public IDictionary Metadata { get; set; } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateThreadRequest.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateAssistantThreadOptions.Serialization.cs similarity index 62% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateThreadRequest.Serialization.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateAssistantThreadOptions.Serialization.cs index 1469ef70a4f8..9d5f8b5e50f7 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateThreadRequest.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateAssistantThreadOptions.Serialization.cs @@ -13,11 +13,11 @@ namespace Azure.AI.OpenAI.Assistants { - internal partial class UpdateThreadRequest : IUtf8JsonSerializable, IJsonModel + public partial class UpdateAssistantThreadOptions : IUtf8JsonSerializable, IJsonModel { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); - void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) { writer.WriteStartObject(); JsonModelWriteCore(writer, options); @@ -28,12 +28,24 @@ void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWri /// 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; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(UpdateThreadRequest)} does not support writing '{format}' format."); + throw new FormatException($"The model {nameof(UpdateAssistantThreadOptions)} does not support writing '{format}' format."); } + if (Optional.IsDefined(ToolResources)) + { + if (ToolResources != null) + { + writer.WritePropertyName("tool_resources"u8); + writer.WriteObjectValue(ToolResources, options); + } + else + { + writer.WriteNull("tool_resources"); + } + } if (Optional.IsCollectionDefined(Metadata)) { if (Metadata != null) @@ -69,19 +81,19 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } } - UpdateThreadRequest IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + UpdateAssistantThreadOptions IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(UpdateThreadRequest)} does not support reading '{format}' format."); + throw new FormatException($"The model {nameof(UpdateAssistantThreadOptions)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return DeserializeUpdateThreadRequest(document.RootElement, options); + return DeserializeUpdateAssistantThreadOptions(document.RootElement, options); } - internal static UpdateThreadRequest DeserializeUpdateThreadRequest(JsonElement element, ModelReaderWriterOptions options = null) + internal static UpdateAssistantThreadOptions DeserializeUpdateAssistantThreadOptions(JsonElement element, ModelReaderWriterOptions options = null) { options ??= ModelSerializationExtensions.WireOptions; @@ -89,11 +101,22 @@ internal static UpdateThreadRequest DeserializeUpdateThreadRequest(JsonElement e { return null; } - IReadOnlyDictionary metadata = default; + UpdateToolResourcesOptions toolResources = default; + IDictionary metadata = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); foreach (var property in element.EnumerateObject()) { + if (property.NameEquals("tool_resources"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + toolResources = null; + continue; + } + toolResources = UpdateToolResourcesOptions.DeserializeUpdateToolResourcesOptions(property.Value, options); + continue; + } if (property.NameEquals("metadata"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) @@ -114,46 +137,46 @@ internal static UpdateThreadRequest DeserializeUpdateThreadRequest(JsonElement e } } serializedAdditionalRawData = rawDataDictionary; - return new UpdateThreadRequest(metadata ?? new ChangeTrackingDictionary(), serializedAdditionalRawData); + return new UpdateAssistantThreadOptions(toolResources, metadata ?? new ChangeTrackingDictionary(), serializedAdditionalRawData); } - BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + 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(UpdateThreadRequest)} does not support writing '{options.Format}' format."); + throw new FormatException($"The model {nameof(UpdateAssistantThreadOptions)} does not support writing '{options.Format}' format."); } } - UpdateThreadRequest IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + UpdateAssistantThreadOptions IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; switch (format) { case "J": { using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeUpdateThreadRequest(document.RootElement, options); + return DeserializeUpdateAssistantThreadOptions(document.RootElement, options); } default: - throw new FormatException($"The model {nameof(UpdateThreadRequest)} does not support reading '{options.Format}' format."); + throw new FormatException($"The model {nameof(UpdateAssistantThreadOptions)} does not support reading '{options.Format}' format."); } } - string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; /// Deserializes the model from a raw response. /// The response to deserialize the model from. - internal static UpdateThreadRequest FromResponse(Response response) + internal static UpdateAssistantThreadOptions FromResponse(Response response) { using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeUpdateThreadRequest(document.RootElement); + return DeserializeUpdateAssistantThreadOptions(document.RootElement); } /// Convert into a . diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateMessageRequest.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateAssistantThreadOptions.cs similarity index 53% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateMessageRequest.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateAssistantThreadOptions.cs index b58f5b245234..6b7141de049b 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/CreateMessageRequest.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateAssistantThreadOptions.cs @@ -10,8 +10,8 @@ namespace Azure.AI.OpenAI.Assistants { - /// The CreateMessageRequest. - internal partial class CreateMessageRequest + /// The details used to update an existing assistant thread. + public partial class UpdateAssistantThreadOptions { /// /// Keeps track of any properties unknown to the library. @@ -45,47 +45,34 @@ internal partial class CreateMessageRequest /// private IDictionary _serializedAdditionalRawData; - /// Initializes a new instance of . - /// The role to associate with the new message. - /// The textual content for the new message. - /// is null. - internal CreateMessageRequest(MessageRole role, string content) + /// Initializes a new instance of . + public UpdateAssistantThreadOptions() { - Argument.AssertNotNull(content, nameof(content)); - - Role = role; - Content = content; - FileIds = new ChangeTrackingList(); Metadata = new ChangeTrackingDictionary(); } - /// Initializes a new instance of . - /// The role to associate with the new message. - /// The textual content for the new message. - /// A list of up to 10 file IDs to associate with the message, as used by tools like 'code_interpreter' or 'retrieval' that can read files. + /// Initializes a new instance of . + /// + /// A set of resources that are made available to the assistant's tools in this thread. The resources are specific to the + /// type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires + /// a list of vector store IDs + /// /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// Keeps track of any properties unknown to the library. - internal CreateMessageRequest(MessageRole role, string content, IReadOnlyList fileIds, IReadOnlyDictionary metadata, IDictionary serializedAdditionalRawData) + internal UpdateAssistantThreadOptions(UpdateToolResourcesOptions toolResources, IDictionary metadata, IDictionary serializedAdditionalRawData) { - Role = role; - Content = content; - FileIds = fileIds; + ToolResources = toolResources; Metadata = metadata; _serializedAdditionalRawData = serializedAdditionalRawData; } - /// Initializes a new instance of for deserialization. - internal CreateMessageRequest() - { - } - - /// The role to associate with the new message. - public MessageRole Role { get; } - /// The textual content for the new message. - public string Content { get; } - /// A list of up to 10 file IDs to associate with the message, as used by tools like 'code_interpreter' or 'retrieval' that can read files. - public IReadOnlyList FileIds { get; } + /// + /// A set of resources that are made available to the assistant's tools in this thread. The resources are specific to the + /// type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires + /// a list of vector store IDs + /// + public UpdateToolResourcesOptions ToolResources { get; set; } /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. - public IReadOnlyDictionary Metadata { get; } + public IDictionary Metadata { get; set; } } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateCodeInterpreterToolResourceOptions.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateCodeInterpreterToolResourceOptions.Serialization.cs new file mode 100644 index 000000000000..d88457c6b5a3 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateCodeInterpreterToolResourceOptions.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.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + public partial class UpdateCodeInterpreterToolResourceOptions : 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(UpdateCodeInterpreterToolResourceOptions)} does not support writing '{format}' format."); + } + + if (Optional.IsCollectionDefined(FileIds)) + { + writer.WritePropertyName("file_ids"u8); + writer.WriteStartArray(); + foreach (var item in FileIds) + { + 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 + } + } + } + + UpdateCodeInterpreterToolResourceOptions 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(UpdateCodeInterpreterToolResourceOptions)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeUpdateCodeInterpreterToolResourceOptions(document.RootElement, options); + } + + internal static UpdateCodeInterpreterToolResourceOptions DeserializeUpdateCodeInterpreterToolResourceOptions(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IList fileIds = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("file_ids"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + fileIds = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new UpdateCodeInterpreterToolResourceOptions(fileIds ?? 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(UpdateCodeInterpreterToolResourceOptions)} does not support writing '{options.Format}' format."); + } + } + + UpdateCodeInterpreterToolResourceOptions 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 DeserializeUpdateCodeInterpreterToolResourceOptions(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(UpdateCodeInterpreterToolResourceOptions)} 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 UpdateCodeInterpreterToolResourceOptions FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeUpdateCodeInterpreterToolResourceOptions(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateCodeInterpreterToolResourceOptions.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateCodeInterpreterToolResourceOptions.cs new file mode 100644 index 000000000000..8c09267cd78d --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateCodeInterpreterToolResourceOptions.cs @@ -0,0 +1,66 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Request object to update `code_interpreted` tool resources. + public partial class UpdateCodeInterpreterToolResourceOptions + { + /// + /// 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 UpdateCodeInterpreterToolResourceOptions() + { + FileIds = new ChangeTrackingList(); + } + + /// Initializes a new instance of . + /// A list of file IDs to override the current list of the assistant. + /// Keeps track of any properties unknown to the library. + internal UpdateCodeInterpreterToolResourceOptions(IList fileIds, IDictionary serializedAdditionalRawData) + { + FileIds = fileIds; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// A list of file IDs to override the current list of the assistant. + public IList FileIds { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateFileSearchToolResourceOptions.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateFileSearchToolResourceOptions.Serialization.cs new file mode 100644 index 000000000000..224226046340 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateFileSearchToolResourceOptions.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.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + public partial class UpdateFileSearchToolResourceOptions : 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(UpdateFileSearchToolResourceOptions)} does not support writing '{format}' format."); + } + + if (Optional.IsCollectionDefined(VectorStoreIds)) + { + writer.WritePropertyName("vector_store_ids"u8); + writer.WriteStartArray(); + foreach (var item in VectorStoreIds) + { + 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 + } + } + } + + UpdateFileSearchToolResourceOptions 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(UpdateFileSearchToolResourceOptions)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeUpdateFileSearchToolResourceOptions(document.RootElement, options); + } + + internal static UpdateFileSearchToolResourceOptions DeserializeUpdateFileSearchToolResourceOptions(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IList vectorStoreIds = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("vector_store_ids"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + vectorStoreIds = array; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new UpdateFileSearchToolResourceOptions(vectorStoreIds ?? 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(UpdateFileSearchToolResourceOptions)} does not support writing '{options.Format}' format."); + } + } + + UpdateFileSearchToolResourceOptions 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 DeserializeUpdateFileSearchToolResourceOptions(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(UpdateFileSearchToolResourceOptions)} 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 UpdateFileSearchToolResourceOptions FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeUpdateFileSearchToolResourceOptions(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateFileSearchToolResourceOptions.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateFileSearchToolResourceOptions.cs new file mode 100644 index 000000000000..8742c5cd1b07 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateFileSearchToolResourceOptions.cs @@ -0,0 +1,66 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Request object to update `file_search` tool resources. + public partial class UpdateFileSearchToolResourceOptions + { + /// + /// 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 UpdateFileSearchToolResourceOptions() + { + VectorStoreIds = new ChangeTrackingList(); + } + + /// Initializes a new instance of . + /// A list of vector store IDs to override the current list of the assistant. + /// Keeps track of any properties unknown to the library. + internal UpdateFileSearchToolResourceOptions(IList vectorStoreIds, IDictionary serializedAdditionalRawData) + { + VectorStoreIds = vectorStoreIds; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// A list of vector store IDs to override the current list of the assistant. + public IList VectorStoreIds { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateToolResourcesOptions.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateToolResourcesOptions.Serialization.cs new file mode 100644 index 000000000000..beeca740951f --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateToolResourcesOptions.Serialization.cs @@ -0,0 +1,164 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class UpdateToolResourcesOptions : 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(UpdateToolResourcesOptions)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(CodeInterpreter)) + { + writer.WritePropertyName("code_interpreter"u8); + writer.WriteObjectValue(CodeInterpreter, options); + } + if (Optional.IsDefined(FileSearch)) + { + writer.WritePropertyName("file_search"u8); + writer.WriteObjectValue(FileSearch, 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 + } + } + } + + UpdateToolResourcesOptions 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(UpdateToolResourcesOptions)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeUpdateToolResourcesOptions(document.RootElement, options); + } + + internal static UpdateToolResourcesOptions DeserializeUpdateToolResourcesOptions(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + UpdateCodeInterpreterToolResourceOptions codeInterpreter = default; + UpdateFileSearchToolResourceOptions fileSearch = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("code_interpreter"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + codeInterpreter = UpdateCodeInterpreterToolResourceOptions.DeserializeUpdateCodeInterpreterToolResourceOptions(property.Value, options); + continue; + } + if (property.NameEquals("file_search"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + fileSearch = UpdateFileSearchToolResourceOptions.DeserializeUpdateFileSearchToolResourceOptions(property.Value, options); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new UpdateToolResourcesOptions(codeInterpreter, fileSearch, 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(UpdateToolResourcesOptions)} does not support writing '{options.Format}' format."); + } + } + + UpdateToolResourcesOptions 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 DeserializeUpdateToolResourcesOptions(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(UpdateToolResourcesOptions)} 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 UpdateToolResourcesOptions FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeUpdateToolResourcesOptions(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateToolResourcesOptions.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateToolResourcesOptions.cs new file mode 100644 index 000000000000..919e93c57f1f --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateToolResourcesOptions.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 Azure.AI.OpenAI.Assistants +{ + /// + /// Request object. A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. + /// For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of + /// vector store IDs. + /// + public partial class UpdateToolResourcesOptions + { + /// + /// 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 UpdateToolResourcesOptions() + { + } + + /// Initializes a new instance of . + /// + /// Overrides the list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files + /// associated with the tool. + /// + /// Overrides the vector store attached to this assistant. There can be a maximum of 1 vector store attached to the assistant. + /// Keeps track of any properties unknown to the library. + internal UpdateToolResourcesOptions(UpdateCodeInterpreterToolResourceOptions codeInterpreter, UpdateFileSearchToolResourceOptions fileSearch, IDictionary serializedAdditionalRawData) + { + CodeInterpreter = codeInterpreter; + FileSearch = fileSearch; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// + /// Overrides the list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files + /// associated with the tool. + /// + public UpdateCodeInterpreterToolResourceOptions CodeInterpreter { get; set; } + /// Overrides the vector store attached to this assistant. There can be a maximum of 1 vector store attached to the assistant. + public UpdateFileSearchToolResourceOptions FileSearch { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStore.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStore.Serialization.cs new file mode 100644 index 000000000000..3ec00f4ffec9 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStore.Serialization.cs @@ -0,0 +1,291 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class VectorStore : 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(VectorStore)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("id"u8); + writer.WriteStringValue(Id); + writer.WritePropertyName("object"u8); + writer.WriteStringValue(Object.ToString()); + writer.WritePropertyName("created_at"u8); + writer.WriteNumberValue(CreatedAt, "U"); + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); + writer.WritePropertyName("usage_bytes"u8); + writer.WriteNumberValue(UsageBytes); + writer.WritePropertyName("file_counts"u8); + writer.WriteObjectValue(FileCounts, options); + writer.WritePropertyName("status"u8); + writer.WriteStringValue(Status.ToString()); + if (Optional.IsDefined(ExpiresAfter)) + { + writer.WritePropertyName("expires_after"u8); + writer.WriteObjectValue(ExpiresAfter, options); + } + if (Optional.IsDefined(ExpiresAt)) + { + if (ExpiresAt != null) + { + writer.WritePropertyName("expires_at"u8); + writer.WriteNumberValue(ExpiresAt.Value, "U"); + } + else + { + writer.WriteNull("expires_at"); + } + } + if (LastActiveAt != null) + { + writer.WritePropertyName("last_active_at"u8); + writer.WriteNumberValue(LastActiveAt.Value, "U"); + } + else + { + writer.WriteNull("last_active_at"); + } + if (Metadata != null && Optional.IsCollectionDefined(Metadata)) + { + writer.WritePropertyName("metadata"u8); + writer.WriteStartObject(); + foreach (var item in Metadata) + { + writer.WritePropertyName(item.Key); + writer.WriteStringValue(item.Value); + } + writer.WriteEndObject(); + } + else + { + writer.WriteNull("metadata"); + } + 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 + } + } + } + + VectorStore 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(VectorStore)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStore(document.RootElement, options); + } + + internal static VectorStore DeserializeVectorStore(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string id = default; + VectorStoreObject @object = default; + DateTimeOffset createdAt = default; + string name = default; + int usageBytes = default; + VectorStoreFileCount fileCounts = default; + VectorStoreStatus status = default; + VectorStoreExpirationPolicy expiresAfter = default; + DateTimeOffset? expiresAt = default; + DateTimeOffset? lastActiveAt = default; + IReadOnlyDictionary metadata = 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("object"u8)) + { + @object = new VectorStoreObject(property.Value.GetString()); + continue; + } + if (property.NameEquals("created_at"u8)) + { + createdAt = DateTimeOffset.FromUnixTimeSeconds(property.Value.GetInt64()); + continue; + } + if (property.NameEquals("name"u8)) + { + name = property.Value.GetString(); + continue; + } + if (property.NameEquals("usage_bytes"u8)) + { + usageBytes = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("file_counts"u8)) + { + fileCounts = VectorStoreFileCount.DeserializeVectorStoreFileCount(property.Value, options); + continue; + } + if (property.NameEquals("status"u8)) + { + status = new VectorStoreStatus(property.Value.GetString()); + continue; + } + if (property.NameEquals("expires_after"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + expiresAfter = VectorStoreExpirationPolicy.DeserializeVectorStoreExpirationPolicy(property.Value, options); + continue; + } + if (property.NameEquals("expires_at"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + expiresAt = null; + continue; + } + expiresAt = DateTimeOffset.FromUnixTimeSeconds(property.Value.GetInt64()); + continue; + } + if (property.NameEquals("last_active_at"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + lastActiveAt = null; + continue; + } + lastActiveAt = DateTimeOffset.FromUnixTimeSeconds(property.Value.GetInt64()); + continue; + } + if (property.NameEquals("metadata"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + metadata = new ChangeTrackingDictionary(); + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var property0 in property.Value.EnumerateObject()) + { + dictionary.Add(property0.Name, property0.Value.GetString()); + } + metadata = dictionary; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new VectorStore( + id, + @object, + createdAt, + name, + usageBytes, + fileCounts, + status, + expiresAfter, + expiresAt, + lastActiveAt, + metadata, + 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(VectorStore)} does not support writing '{options.Format}' format."); + } + } + + VectorStore 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 DeserializeVectorStore(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStore)} 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 VectorStore FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeVectorStore(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStore.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStore.cs new file mode 100644 index 000000000000..bd3231e10fc6 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStore.cs @@ -0,0 +1,132 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// A vector store is a collection of processed files can be used by the `file_search` tool. + public partial class VectorStore + { + /// + /// 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, which can be referenced in API endpoints. + /// The Unix timestamp (in seconds) for when the vector store was created. + /// The name of the vector store. + /// The total number of bytes used by the files in the vector store. + /// Files count grouped by status processed or being processed by this vector store. + /// The status of the vector store, which can be either `expired`, `in_progress`, or `completed`. A status of `completed` indicates that the vector store is ready for use. + /// The Unix timestamp (in seconds) for when the vector store was last active. + /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. + /// , or is null. + internal VectorStore(string id, DateTimeOffset createdAt, string name, int usageBytes, VectorStoreFileCount fileCounts, VectorStoreStatus status, DateTimeOffset? lastActiveAt, IReadOnlyDictionary metadata) + { + Argument.AssertNotNull(id, nameof(id)); + Argument.AssertNotNull(name, nameof(name)); + Argument.AssertNotNull(fileCounts, nameof(fileCounts)); + + Id = id; + CreatedAt = createdAt; + Name = name; + UsageBytes = usageBytes; + FileCounts = fileCounts; + Status = status; + LastActiveAt = lastActiveAt; + Metadata = metadata; + } + + /// Initializes a new instance of . + /// The identifier, which can be referenced in API endpoints. + /// The object type, which is always `vector_store`. + /// The Unix timestamp (in seconds) for when the vector store was created. + /// The name of the vector store. + /// The total number of bytes used by the files in the vector store. + /// Files count grouped by status processed or being processed by this vector store. + /// The status of the vector store, which can be either `expired`, `in_progress`, or `completed`. A status of `completed` indicates that the vector store is ready for use. + /// Details on when this vector store expires. + /// The Unix timestamp (in seconds) for when the vector store will expire. + /// The Unix timestamp (in seconds) for when the vector store was last active. + /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. + /// Keeps track of any properties unknown to the library. + internal VectorStore(string id, VectorStoreObject @object, DateTimeOffset createdAt, string name, int usageBytes, VectorStoreFileCount fileCounts, VectorStoreStatus status, VectorStoreExpirationPolicy expiresAfter, DateTimeOffset? expiresAt, DateTimeOffset? lastActiveAt, IReadOnlyDictionary metadata, IDictionary serializedAdditionalRawData) + { + Id = id; + Object = @object; + CreatedAt = createdAt; + Name = name; + UsageBytes = usageBytes; + FileCounts = fileCounts; + Status = status; + ExpiresAfter = expiresAfter; + ExpiresAt = expiresAt; + LastActiveAt = lastActiveAt; + Metadata = metadata; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal VectorStore() + { + } + + /// The identifier, which can be referenced in API endpoints. + public string Id { get; } + /// The object type, which is always `vector_store`. + public VectorStoreObject Object { get; } = VectorStoreObject.VectorStore; + + /// The Unix timestamp (in seconds) for when the vector store was created. + public DateTimeOffset CreatedAt { get; } + /// The name of the vector store. + public string Name { get; } + /// The total number of bytes used by the files in the vector store. + public int UsageBytes { get; } + /// Files count grouped by status processed or being processed by this vector store. + public VectorStoreFileCount FileCounts { get; } + /// The status of the vector store, which can be either `expired`, `in_progress`, or `completed`. A status of `completed` indicates that the vector store is ready for use. + public VectorStoreStatus Status { get; } + /// Details on when this vector store expires. + public VectorStoreExpirationPolicy ExpiresAfter { get; } + /// The Unix timestamp (in seconds) for when the vector store will expire. + public DateTimeOffset? ExpiresAt { get; } + /// The Unix timestamp (in seconds) for when the vector store was last active. + public DateTimeOffset? LastActiveAt { get; } + /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. + public IReadOnlyDictionary Metadata { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreAutoChunkingStrategyRequest.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreAutoChunkingStrategyRequest.Serialization.cs new file mode 100644 index 000000000000..b58f5bea42d0 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreAutoChunkingStrategyRequest.Serialization.cs @@ -0,0 +1,126 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class VectorStoreAutoChunkingStrategyRequest : 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(VectorStoreAutoChunkingStrategyRequest)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + } + + VectorStoreAutoChunkingStrategyRequest 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(VectorStoreAutoChunkingStrategyRequest)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStoreAutoChunkingStrategyRequest(document.RootElement, options); + } + + internal static VectorStoreAutoChunkingStrategyRequest DeserializeVectorStoreAutoChunkingStrategyRequest(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + VectorStoreChunkingStrategyRequestType type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("type"u8)) + { + type = new VectorStoreChunkingStrategyRequestType(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new VectorStoreAutoChunkingStrategyRequest(type, 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(VectorStoreAutoChunkingStrategyRequest)} does not support writing '{options.Format}' format."); + } + } + + VectorStoreAutoChunkingStrategyRequest 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 DeserializeVectorStoreAutoChunkingStrategyRequest(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStoreAutoChunkingStrategyRequest)} 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 VectorStoreAutoChunkingStrategyRequest FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeVectorStoreAutoChunkingStrategyRequest(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreAutoChunkingStrategyRequest.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreAutoChunkingStrategyRequest.cs new file mode 100644 index 000000000000..54ccde180223 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreAutoChunkingStrategyRequest.cs @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// The default strategy. This strategy currently uses a max_chunk_size_tokens of 800 and chunk_overlap_tokens of 400. + public partial class VectorStoreAutoChunkingStrategyRequest : VectorStoreChunkingStrategyRequest + { + /// Initializes a new instance of . + public VectorStoreAutoChunkingStrategyRequest() + { + Type = VectorStoreChunkingStrategyRequestType.Auto; + } + + /// Initializes a new instance of . + /// The object type. + /// Keeps track of any properties unknown to the library. + internal VectorStoreAutoChunkingStrategyRequest(VectorStoreChunkingStrategyRequestType type, IDictionary serializedAdditionalRawData) : base(type, serializedAdditionalRawData) + { + } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreAutoChunkingStrategyResponse.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreAutoChunkingStrategyResponse.Serialization.cs new file mode 100644 index 000000000000..f97bdd43c70b --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreAutoChunkingStrategyResponse.Serialization.cs @@ -0,0 +1,126 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class VectorStoreAutoChunkingStrategyResponse : 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(VectorStoreAutoChunkingStrategyResponse)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + } + + VectorStoreAutoChunkingStrategyResponse 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(VectorStoreAutoChunkingStrategyResponse)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStoreAutoChunkingStrategyResponse(document.RootElement, options); + } + + internal static VectorStoreAutoChunkingStrategyResponse DeserializeVectorStoreAutoChunkingStrategyResponse(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + VectorStoreChunkingStrategyResponseType type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("type"u8)) + { + type = new VectorStoreChunkingStrategyResponseType(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new VectorStoreAutoChunkingStrategyResponse(type, 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(VectorStoreAutoChunkingStrategyResponse)} does not support writing '{options.Format}' format."); + } + } + + VectorStoreAutoChunkingStrategyResponse 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 DeserializeVectorStoreAutoChunkingStrategyResponse(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStoreAutoChunkingStrategyResponse)} 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 VectorStoreAutoChunkingStrategyResponse FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeVectorStoreAutoChunkingStrategyResponse(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreAutoChunkingStrategyResponse.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreAutoChunkingStrategyResponse.cs new file mode 100644 index 000000000000..17218eca2365 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreAutoChunkingStrategyResponse.cs @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// This is returned when the chunking strategy is unknown. Typically, this is because the file was indexed before the chunking_strategy concept was introduced in the API. + public partial class VectorStoreAutoChunkingStrategyResponse : VectorStoreChunkingStrategyResponse + { + /// Initializes a new instance of . + internal VectorStoreAutoChunkingStrategyResponse() + { + Type = VectorStoreChunkingStrategyResponseType.Other; + } + + /// Initializes a new instance of . + /// The object type. + /// Keeps track of any properties unknown to the library. + internal VectorStoreAutoChunkingStrategyResponse(VectorStoreChunkingStrategyResponseType type, IDictionary serializedAdditionalRawData) : base(type, serializedAdditionalRawData) + { + } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyRequest.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyRequest.Serialization.cs new file mode 100644 index 000000000000..d8709afaf21c --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyRequest.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.Text.Json; +using Azure.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + [PersistableModelProxy(typeof(UnknownVectorStoreChunkingStrategyRequest))] + public partial class VectorStoreChunkingStrategyRequest : 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(VectorStoreChunkingStrategyRequest)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type.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 + } + } + } + + VectorStoreChunkingStrategyRequest 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(VectorStoreChunkingStrategyRequest)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStoreChunkingStrategyRequest(document.RootElement, options); + } + + internal static VectorStoreChunkingStrategyRequest DeserializeVectorStoreChunkingStrategyRequest(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type", out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "auto": return VectorStoreAutoChunkingStrategyRequest.DeserializeVectorStoreAutoChunkingStrategyRequest(element, options); + case "static": return VectorStoreStaticChunkingStrategyRequest.DeserializeVectorStoreStaticChunkingStrategyRequest(element, options); + } + } + return UnknownVectorStoreChunkingStrategyRequest.DeserializeUnknownVectorStoreChunkingStrategyRequest(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(VectorStoreChunkingStrategyRequest)} does not support writing '{options.Format}' format."); + } + } + + VectorStoreChunkingStrategyRequest 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 DeserializeVectorStoreChunkingStrategyRequest(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStoreChunkingStrategyRequest)} 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 VectorStoreChunkingStrategyRequest FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeVectorStoreChunkingStrategyRequest(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyRequest.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyRequest.cs new file mode 100644 index 000000000000..5f64bb63f131 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyRequest.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.AI.OpenAI.Assistants +{ + /// + /// An abstract representation of a vector store chunking strategy configuration. + /// 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 VectorStoreChunkingStrategyRequest + { + /// + /// 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 VectorStoreChunkingStrategyRequest() + { + } + + /// Initializes a new instance of . + /// The object type. + /// Keeps track of any properties unknown to the library. + internal VectorStoreChunkingStrategyRequest(VectorStoreChunkingStrategyRequestType type, IDictionary serializedAdditionalRawData) + { + Type = type; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The object type. + internal VectorStoreChunkingStrategyRequestType Type { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyRequestType.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyRequestType.cs new file mode 100644 index 000000000000..1b9a9691c970 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyRequestType.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 Azure.AI.OpenAI.Assistants +{ + /// Type of chunking strategy. + internal readonly partial struct VectorStoreChunkingStrategyRequestType : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public VectorStoreChunkingStrategyRequestType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string AutoValue = "auto"; + private const string StaticValue = "static"; + + /// auto. + public static VectorStoreChunkingStrategyRequestType Auto { get; } = new VectorStoreChunkingStrategyRequestType(AutoValue); + /// static. + public static VectorStoreChunkingStrategyRequestType Static { get; } = new VectorStoreChunkingStrategyRequestType(StaticValue); + /// Determines if two values are the same. + public static bool operator ==(VectorStoreChunkingStrategyRequestType left, VectorStoreChunkingStrategyRequestType right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(VectorStoreChunkingStrategyRequestType left, VectorStoreChunkingStrategyRequestType right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator VectorStoreChunkingStrategyRequestType(string value) => new VectorStoreChunkingStrategyRequestType(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is VectorStoreChunkingStrategyRequestType other && Equals(other); + /// + public bool Equals(VectorStoreChunkingStrategyRequestType 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyResponse.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyResponse.Serialization.cs new file mode 100644 index 000000000000..c7888938c540 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyResponse.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.Text.Json; +using Azure.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + [PersistableModelProxy(typeof(UnknownVectorStoreChunkingStrategyResponse))] + public partial class VectorStoreChunkingStrategyResponse : 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(VectorStoreChunkingStrategyResponse)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("type"u8); + writer.WriteStringValue(Type.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 + } + } + } + + VectorStoreChunkingStrategyResponse 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(VectorStoreChunkingStrategyResponse)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStoreChunkingStrategyResponse(document.RootElement, options); + } + + internal static VectorStoreChunkingStrategyResponse DeserializeVectorStoreChunkingStrategyResponse(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("type", out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "other": return VectorStoreAutoChunkingStrategyResponse.DeserializeVectorStoreAutoChunkingStrategyResponse(element, options); + case "static": return VectorStoreStaticChunkingStrategyResponse.DeserializeVectorStoreStaticChunkingStrategyResponse(element, options); + } + } + return UnknownVectorStoreChunkingStrategyResponse.DeserializeUnknownVectorStoreChunkingStrategyResponse(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(VectorStoreChunkingStrategyResponse)} does not support writing '{options.Format}' format."); + } + } + + VectorStoreChunkingStrategyResponse 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 DeserializeVectorStoreChunkingStrategyResponse(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStoreChunkingStrategyResponse)} 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 VectorStoreChunkingStrategyResponse FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeVectorStoreChunkingStrategyResponse(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyResponse.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyResponse.cs new file mode 100644 index 000000000000..a4e4bac4d2a8 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyResponse.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.AI.OpenAI.Assistants +{ + /// + /// An abstract representation of a vector store chunking strategy configuration. + /// 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 VectorStoreChunkingStrategyResponse + { + /// + /// 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 VectorStoreChunkingStrategyResponse() + { + } + + /// Initializes a new instance of . + /// The object type. + /// Keeps track of any properties unknown to the library. + internal VectorStoreChunkingStrategyResponse(VectorStoreChunkingStrategyResponseType type, IDictionary serializedAdditionalRawData) + { + Type = type; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The object type. + internal VectorStoreChunkingStrategyResponseType Type { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyResponseType.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyResponseType.cs new file mode 100644 index 000000000000..8b4d6338955c --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreChunkingStrategyResponseType.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 Azure.AI.OpenAI.Assistants +{ + /// Type of chunking strategy. + internal readonly partial struct VectorStoreChunkingStrategyResponseType : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public VectorStoreChunkingStrategyResponseType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string OtherValue = "other"; + private const string StaticValue = "static"; + + /// other. + public static VectorStoreChunkingStrategyResponseType Other { get; } = new VectorStoreChunkingStrategyResponseType(OtherValue); + /// static. + public static VectorStoreChunkingStrategyResponseType Static { get; } = new VectorStoreChunkingStrategyResponseType(StaticValue); + /// Determines if two values are the same. + public static bool operator ==(VectorStoreChunkingStrategyResponseType left, VectorStoreChunkingStrategyResponseType right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(VectorStoreChunkingStrategyResponseType left, VectorStoreChunkingStrategyResponseType right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator VectorStoreChunkingStrategyResponseType(string value) => new VectorStoreChunkingStrategyResponseType(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is VectorStoreChunkingStrategyResponseType other && Equals(other); + /// + public bool Equals(VectorStoreChunkingStrategyResponseType 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalAssistantFileDeletionStatus.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreDeletionStatus.Serialization.cs similarity index 64% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalAssistantFileDeletionStatus.Serialization.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreDeletionStatus.Serialization.cs index 99bae8e62025..eb4873d43644 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalAssistantFileDeletionStatus.Serialization.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreDeletionStatus.Serialization.cs @@ -13,11 +13,11 @@ namespace Azure.AI.OpenAI.Assistants { - internal partial class InternalAssistantFileDeletionStatus : IUtf8JsonSerializable, IJsonModel + public partial class VectorStoreDeletionStatus : IUtf8JsonSerializable, IJsonModel { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) => ((IJsonModel)this).Write(writer, ModelSerializationExtensions.WireOptions); - void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) { writer.WriteStartObject(); JsonModelWriteCore(writer, options); @@ -28,10 +28,10 @@ void IJsonModel.Write(Utf8JsonWriter 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; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(InternalAssistantFileDeletionStatus)} does not support writing '{format}' format."); + throw new FormatException($"The model {nameof(VectorStoreDeletionStatus)} does not support writing '{format}' format."); } writer.WritePropertyName("id"u8); @@ -57,19 +57,19 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } } - InternalAssistantFileDeletionStatus IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + VectorStoreDeletionStatus IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; if (format != "J") { - throw new FormatException($"The model {nameof(InternalAssistantFileDeletionStatus)} does not support reading '{format}' format."); + throw new FormatException($"The model {nameof(VectorStoreDeletionStatus)} does not support reading '{format}' format."); } using JsonDocument document = JsonDocument.ParseValue(ref reader); - return DeserializeInternalAssistantFileDeletionStatus(document.RootElement, options); + return DeserializeVectorStoreDeletionStatus(document.RootElement, options); } - internal static InternalAssistantFileDeletionStatus DeserializeInternalAssistantFileDeletionStatus(JsonElement element, ModelReaderWriterOptions options = null) + internal static VectorStoreDeletionStatus DeserializeVectorStoreDeletionStatus(JsonElement element, ModelReaderWriterOptions options = null) { options ??= ModelSerializationExtensions.WireOptions; @@ -79,7 +79,7 @@ internal static InternalAssistantFileDeletionStatus DeserializeInternalAssistant } string id = default; bool deleted = default; - InternalAssistantFileDeletionStatusObject @object = default; + VectorStoreDeletionStatusObject @object = default; IDictionary serializedAdditionalRawData = default; Dictionary rawDataDictionary = new Dictionary(); foreach (var property in element.EnumerateObject()) @@ -96,7 +96,7 @@ internal static InternalAssistantFileDeletionStatus DeserializeInternalAssistant } if (property.NameEquals("object"u8)) { - @object = new InternalAssistantFileDeletionStatusObject(property.Value.GetString()); + @object = new VectorStoreDeletionStatusObject(property.Value.GetString()); continue; } if (options.Format != "W") @@ -105,46 +105,46 @@ internal static InternalAssistantFileDeletionStatus DeserializeInternalAssistant } } serializedAdditionalRawData = rawDataDictionary; - return new InternalAssistantFileDeletionStatus(id, deleted, @object, serializedAdditionalRawData); + return new VectorStoreDeletionStatus(id, deleted, @object, serializedAdditionalRawData); } - BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + 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(InternalAssistantFileDeletionStatus)} does not support writing '{options.Format}' format."); + throw new FormatException($"The model {nameof(VectorStoreDeletionStatus)} does not support writing '{options.Format}' format."); } } - InternalAssistantFileDeletionStatus IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) + VectorStoreDeletionStatus IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) { - var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + var format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; switch (format) { case "J": { using JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeInternalAssistantFileDeletionStatus(document.RootElement, options); + return DeserializeVectorStoreDeletionStatus(document.RootElement, options); } default: - throw new FormatException($"The model {nameof(InternalAssistantFileDeletionStatus)} does not support reading '{options.Format}' format."); + throw new FormatException($"The model {nameof(VectorStoreDeletionStatus)} does not support reading '{options.Format}' format."); } } - string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; /// Deserializes the model from a raw response. /// The response to deserialize the model from. - internal static InternalAssistantFileDeletionStatus FromResponse(Response response) + internal static VectorStoreDeletionStatus FromResponse(Response response) { using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); - return DeserializeInternalAssistantFileDeletionStatus(document.RootElement); + return DeserializeVectorStoreDeletionStatus(document.RootElement); } /// Convert into a . diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalAssistantFileDeletionStatus.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreDeletionStatus.cs similarity index 71% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalAssistantFileDeletionStatus.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreDeletionStatus.cs index 1a91eb299ceb..959f2da309e7 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/InternalAssistantFileDeletionStatus.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreDeletionStatus.cs @@ -10,8 +10,8 @@ namespace Azure.AI.OpenAI.Assistants { - /// The status of an assistant file deletion operation. - internal partial class InternalAssistantFileDeletionStatus + /// Response object for deleting a vector store. + public partial class VectorStoreDeletionStatus { /// /// Keeps track of any properties unknown to the library. @@ -45,11 +45,11 @@ internal partial class InternalAssistantFileDeletionStatus /// private IDictionary _serializedAdditionalRawData; - /// Initializes a new instance of . + /// Initializes a new instance of . /// The ID of the resource specified for deletion. /// A value indicating whether deletion was successful. /// is null. - internal InternalAssistantFileDeletionStatus(string id, bool deleted) + internal VectorStoreDeletionStatus(string id, bool deleted) { Argument.AssertNotNull(id, nameof(id)); @@ -57,12 +57,12 @@ internal InternalAssistantFileDeletionStatus(string id, bool deleted) Deleted = deleted; } - /// Initializes a new instance of . + /// Initializes a new instance of . /// The ID of the resource specified for deletion. /// A value indicating whether deletion was successful. - /// The object type, which is always 'assistant.file.deleted'. + /// The object type, which is always 'vector_store.deleted'. /// Keeps track of any properties unknown to the library. - internal InternalAssistantFileDeletionStatus(string id, bool deleted, InternalAssistantFileDeletionStatusObject @object, IDictionary serializedAdditionalRawData) + internal VectorStoreDeletionStatus(string id, bool deleted, VectorStoreDeletionStatusObject @object, IDictionary serializedAdditionalRawData) { Id = id; Deleted = deleted; @@ -70,8 +70,8 @@ internal InternalAssistantFileDeletionStatus(string id, bool deleted, InternalAs _serializedAdditionalRawData = serializedAdditionalRawData; } - /// Initializes a new instance of for deserialization. - internal InternalAssistantFileDeletionStatus() + /// Initializes a new instance of for deserialization. + internal VectorStoreDeletionStatus() { } @@ -79,7 +79,7 @@ internal InternalAssistantFileDeletionStatus() public string Id { get; } /// A value indicating whether deletion was successful. public bool Deleted { get; } - /// The object type, which is always 'assistant.file.deleted'. - public InternalAssistantFileDeletionStatusObject Object { get; } = InternalAssistantFileDeletionStatusObject.AssistantFileDeleted; + /// The object type, which is always 'vector_store.deleted'. + public VectorStoreDeletionStatusObject Object { get; } = VectorStoreDeletionStatusObject.VectorStoreDeleted; } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreDeletionStatusObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreDeletionStatusObject.cs new file mode 100644 index 000000000000..240b13fab2c5 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreDeletionStatusObject.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.AI.OpenAI.Assistants +{ + /// The VectorStoreDeletionStatus_object. + public readonly partial struct VectorStoreDeletionStatusObject : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public VectorStoreDeletionStatusObject(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string VectorStoreDeletedValue = "vector_store.deleted"; + + /// vector_store.deleted. + public static VectorStoreDeletionStatusObject VectorStoreDeleted { get; } = new VectorStoreDeletionStatusObject(VectorStoreDeletedValue); + /// Determines if two values are the same. + public static bool operator ==(VectorStoreDeletionStatusObject left, VectorStoreDeletionStatusObject right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(VectorStoreDeletionStatusObject left, VectorStoreDeletionStatusObject right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator VectorStoreDeletionStatusObject(string value) => new VectorStoreDeletionStatusObject(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is VectorStoreDeletionStatusObject other && Equals(other); + /// + public bool Equals(VectorStoreDeletionStatusObject 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreExpirationPolicy.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreExpirationPolicy.Serialization.cs new file mode 100644 index 000000000000..c0be5ad35db4 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreExpirationPolicy.Serialization.cs @@ -0,0 +1,150 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class VectorStoreExpirationPolicy : 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(VectorStoreExpirationPolicy)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("anchor"u8); + writer.WriteStringValue(Anchor.ToString()); + writer.WritePropertyName("days"u8); + writer.WriteNumberValue(Days); + 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 + } + } + } + + VectorStoreExpirationPolicy 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(VectorStoreExpirationPolicy)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStoreExpirationPolicy(document.RootElement, options); + } + + internal static VectorStoreExpirationPolicy DeserializeVectorStoreExpirationPolicy(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + VectorStoreExpirationPolicyAnchor anchor = default; + int days = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("anchor"u8)) + { + anchor = new VectorStoreExpirationPolicyAnchor(property.Value.GetString()); + continue; + } + if (property.NameEquals("days"u8)) + { + days = property.Value.GetInt32(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new VectorStoreExpirationPolicy(anchor, days, 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(VectorStoreExpirationPolicy)} does not support writing '{options.Format}' format."); + } + } + + VectorStoreExpirationPolicy 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 DeserializeVectorStoreExpirationPolicy(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStoreExpirationPolicy)} 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 VectorStoreExpirationPolicy FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeVectorStoreExpirationPolicy(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreExpirationPolicy.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreExpirationPolicy.cs new file mode 100644 index 000000000000..345d82299d9d --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreExpirationPolicy.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.AI.OpenAI.Assistants +{ + /// The expiration policy for a vector store. + public partial class VectorStoreExpirationPolicy + { + /// + /// 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 . + /// Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`. + /// The anchor timestamp after which the expiration policy applies. + public VectorStoreExpirationPolicy(VectorStoreExpirationPolicyAnchor anchor, int days) + { + Anchor = anchor; + Days = days; + } + + /// Initializes a new instance of . + /// Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`. + /// The anchor timestamp after which the expiration policy applies. + /// Keeps track of any properties unknown to the library. + internal VectorStoreExpirationPolicy(VectorStoreExpirationPolicyAnchor anchor, int days, IDictionary serializedAdditionalRawData) + { + Anchor = anchor; + Days = days; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal VectorStoreExpirationPolicy() + { + } + + /// Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`. + public VectorStoreExpirationPolicyAnchor Anchor { get; set; } + /// The anchor timestamp after which the expiration policy applies. + public int Days { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreExpirationPolicyAnchor.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreExpirationPolicyAnchor.cs new file mode 100644 index 000000000000..864a769e6b50 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreExpirationPolicyAnchor.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.AI.OpenAI.Assistants +{ + /// Describes the relationship between the days and the expiration of this vector store. + public readonly partial struct VectorStoreExpirationPolicyAnchor : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public VectorStoreExpirationPolicyAnchor(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string LastActiveAtValue = "last_active_at"; + + /// The expiration policy is based on the last time the vector store was active. + public static VectorStoreExpirationPolicyAnchor LastActiveAt { get; } = new VectorStoreExpirationPolicyAnchor(LastActiveAtValue); + /// Determines if two values are the same. + public static bool operator ==(VectorStoreExpirationPolicyAnchor left, VectorStoreExpirationPolicyAnchor right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(VectorStoreExpirationPolicyAnchor left, VectorStoreExpirationPolicyAnchor right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator VectorStoreExpirationPolicyAnchor(string value) => new VectorStoreExpirationPolicyAnchor(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is VectorStoreExpirationPolicyAnchor other && Equals(other); + /// + public bool Equals(VectorStoreExpirationPolicyAnchor 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFile.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFile.Serialization.cs new file mode 100644 index 000000000000..a2ce877adbc7 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFile.Serialization.cs @@ -0,0 +1,219 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class VectorStoreFile : 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(VectorStoreFile)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("id"u8); + writer.WriteStringValue(Id); + writer.WritePropertyName("object"u8); + writer.WriteStringValue(Object.ToString()); + writer.WritePropertyName("usage_bytes"u8); + writer.WriteNumberValue(UsageBytes); + writer.WritePropertyName("created_at"u8); + writer.WriteNumberValue(CreatedAt, "U"); + writer.WritePropertyName("vector_store_id"u8); + writer.WriteStringValue(VectorStoreId); + writer.WritePropertyName("status"u8); + writer.WriteStringValue(Status.ToString()); + if (LastError != null) + { + writer.WritePropertyName("last_error"u8); + writer.WriteObjectValue(LastError, options); + } + else + { + writer.WriteNull("last_error"); + } + writer.WritePropertyName("chunking_strategy"u8); + writer.WriteObjectValue(ChunkingStrategy, 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 + } + } + } + + VectorStoreFile 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(VectorStoreFile)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStoreFile(document.RootElement, options); + } + + internal static VectorStoreFile DeserializeVectorStoreFile(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string id = default; + VectorStoreFileObject @object = default; + int usageBytes = default; + DateTimeOffset createdAt = default; + string vectorStoreId = default; + VectorStoreFileStatus status = default; + VectorStoreFileError lastError = default; + VectorStoreChunkingStrategyResponse chunkingStrategy = 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("object"u8)) + { + @object = new VectorStoreFileObject(property.Value.GetString()); + continue; + } + if (property.NameEquals("usage_bytes"u8)) + { + usageBytes = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("created_at"u8)) + { + createdAt = DateTimeOffset.FromUnixTimeSeconds(property.Value.GetInt64()); + continue; + } + if (property.NameEquals("vector_store_id"u8)) + { + vectorStoreId = property.Value.GetString(); + continue; + } + if (property.NameEquals("status"u8)) + { + status = new VectorStoreFileStatus(property.Value.GetString()); + continue; + } + if (property.NameEquals("last_error"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + lastError = null; + continue; + } + lastError = VectorStoreFileError.DeserializeVectorStoreFileError(property.Value, options); + continue; + } + if (property.NameEquals("chunking_strategy"u8)) + { + chunkingStrategy = VectorStoreChunkingStrategyResponse.DeserializeVectorStoreChunkingStrategyResponse(property.Value, options); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new VectorStoreFile( + id, + @object, + usageBytes, + createdAt, + vectorStoreId, + status, + lastError, + chunkingStrategy, + 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(VectorStoreFile)} does not support writing '{options.Format}' format."); + } + } + + VectorStoreFile 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 DeserializeVectorStoreFile(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStoreFile)} 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 VectorStoreFile FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeVectorStoreFile(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFile.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFile.cs new file mode 100644 index 000000000000..d7c12dbf07d8 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFile.cs @@ -0,0 +1,139 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Description of a file attached to a vector store. + public partial class VectorStoreFile + { + /// + /// 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, which can be referenced in API endpoints. + /// + /// The total vector store usage in bytes. Note that this may be different from the original file + /// size. + /// + /// The Unix timestamp (in seconds) for when the vector store file was created. + /// The ID of the vector store that the file is attached to. + /// The status of the vector store file, which can be either `in_progress`, `completed`, `cancelled`, or `failed`. The status `completed` indicates that the vector store file is ready for use. + /// The last error associated with this vector store file. Will be `null` if there are no errors. + /// + /// The strategy used to chunk the file. + /// 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 . + /// + /// , or is null. + internal VectorStoreFile(string id, int usageBytes, DateTimeOffset createdAt, string vectorStoreId, VectorStoreFileStatus status, VectorStoreFileError lastError, VectorStoreChunkingStrategyResponse chunkingStrategy) + { + Argument.AssertNotNull(id, nameof(id)); + Argument.AssertNotNull(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNull(chunkingStrategy, nameof(chunkingStrategy)); + + Id = id; + UsageBytes = usageBytes; + CreatedAt = createdAt; + VectorStoreId = vectorStoreId; + Status = status; + LastError = lastError; + ChunkingStrategy = chunkingStrategy; + } + + /// Initializes a new instance of . + /// The identifier, which can be referenced in API endpoints. + /// The object type, which is always `vector_store.file`. + /// + /// The total vector store usage in bytes. Note that this may be different from the original file + /// size. + /// + /// The Unix timestamp (in seconds) for when the vector store file was created. + /// The ID of the vector store that the file is attached to. + /// The status of the vector store file, which can be either `in_progress`, `completed`, `cancelled`, or `failed`. The status `completed` indicates that the vector store file is ready for use. + /// The last error associated with this vector store file. Will be `null` if there are no errors. + /// + /// The strategy used to chunk the file. + /// 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 . + /// + /// Keeps track of any properties unknown to the library. + internal VectorStoreFile(string id, VectorStoreFileObject @object, int usageBytes, DateTimeOffset createdAt, string vectorStoreId, VectorStoreFileStatus status, VectorStoreFileError lastError, VectorStoreChunkingStrategyResponse chunkingStrategy, IDictionary serializedAdditionalRawData) + { + Id = id; + Object = @object; + UsageBytes = usageBytes; + CreatedAt = createdAt; + VectorStoreId = vectorStoreId; + Status = status; + LastError = lastError; + ChunkingStrategy = chunkingStrategy; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal VectorStoreFile() + { + } + + /// The identifier, which can be referenced in API endpoints. + public string Id { get; } + /// The object type, which is always `vector_store.file`. + public VectorStoreFileObject Object { get; } = VectorStoreFileObject.VectorStoreFile; + + /// + /// The total vector store usage in bytes. Note that this may be different from the original file + /// size. + /// + public int UsageBytes { get; } + /// The Unix timestamp (in seconds) for when the vector store file was created. + public DateTimeOffset CreatedAt { get; } + /// The ID of the vector store that the file is attached to. + public string VectorStoreId { get; } + /// The status of the vector store file, which can be either `in_progress`, `completed`, `cancelled`, or `failed`. The status `completed` indicates that the vector store file is ready for use. + public VectorStoreFileStatus Status { get; } + /// The last error associated with this vector store file. Will be `null` if there are no errors. + public VectorStoreFileError LastError { get; } + /// + /// The strategy used to chunk the file. + /// 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 VectorStoreChunkingStrategyResponse ChunkingStrategy { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileBatch.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileBatch.Serialization.cs new file mode 100644 index 000000000000..76745044dfb1 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileBatch.Serialization.cs @@ -0,0 +1,189 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class VectorStoreFileBatch : 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(VectorStoreFileBatch)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("id"u8); + writer.WriteStringValue(Id); + writer.WritePropertyName("object"u8); + writer.WriteStringValue(Object.ToString()); + writer.WritePropertyName("created_at"u8); + writer.WriteNumberValue(CreatedAt, "U"); + writer.WritePropertyName("vector_store_id"u8); + writer.WriteStringValue(VectorStoreId); + writer.WritePropertyName("status"u8); + writer.WriteStringValue(Status.ToString()); + writer.WritePropertyName("file_counts"u8); + writer.WriteObjectValue(FileCounts, 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 + } + } + } + + VectorStoreFileBatch 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(VectorStoreFileBatch)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStoreFileBatch(document.RootElement, options); + } + + internal static VectorStoreFileBatch DeserializeVectorStoreFileBatch(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string id = default; + VectorStoreFileBatchObject @object = default; + DateTimeOffset createdAt = default; + string vectorStoreId = default; + VectorStoreFileBatchStatus status = default; + VectorStoreFileCount fileCounts = 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("object"u8)) + { + @object = new VectorStoreFileBatchObject(property.Value.GetString()); + continue; + } + if (property.NameEquals("created_at"u8)) + { + createdAt = DateTimeOffset.FromUnixTimeSeconds(property.Value.GetInt64()); + continue; + } + if (property.NameEquals("vector_store_id"u8)) + { + vectorStoreId = property.Value.GetString(); + continue; + } + if (property.NameEquals("status"u8)) + { + status = new VectorStoreFileBatchStatus(property.Value.GetString()); + continue; + } + if (property.NameEquals("file_counts"u8)) + { + fileCounts = VectorStoreFileCount.DeserializeVectorStoreFileCount(property.Value, options); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new VectorStoreFileBatch( + id, + @object, + createdAt, + vectorStoreId, + status, + fileCounts, + 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(VectorStoreFileBatch)} does not support writing '{options.Format}' format."); + } + } + + VectorStoreFileBatch 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 DeserializeVectorStoreFileBatch(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStoreFileBatch)} 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 VectorStoreFileBatch FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeVectorStoreFileBatch(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileBatch.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileBatch.cs new file mode 100644 index 000000000000..898dd2ab2b55 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileBatch.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 Azure.AI.OpenAI.Assistants +{ + /// A batch of files attached to a vector store. + public partial class VectorStoreFileBatch + { + /// + /// 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, which can be referenced in API endpoints. + /// The Unix timestamp (in seconds) for when the vector store files batch was created. + /// The ID of the vector store that the file is attached to. + /// The status of the vector store files batch, which can be either `in_progress`, `completed`, `cancelled` or `failed`. + /// Files count grouped by status processed or being processed by this vector store. + /// , or is null. + internal VectorStoreFileBatch(string id, DateTimeOffset createdAt, string vectorStoreId, VectorStoreFileBatchStatus status, VectorStoreFileCount fileCounts) + { + Argument.AssertNotNull(id, nameof(id)); + Argument.AssertNotNull(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNull(fileCounts, nameof(fileCounts)); + + Id = id; + CreatedAt = createdAt; + VectorStoreId = vectorStoreId; + Status = status; + FileCounts = fileCounts; + } + + /// Initializes a new instance of . + /// The identifier, which can be referenced in API endpoints. + /// The object type, which is always `vector_store.file_batch`. + /// The Unix timestamp (in seconds) for when the vector store files batch was created. + /// The ID of the vector store that the file is attached to. + /// The status of the vector store files batch, which can be either `in_progress`, `completed`, `cancelled` or `failed`. + /// Files count grouped by status processed or being processed by this vector store. + /// Keeps track of any properties unknown to the library. + internal VectorStoreFileBatch(string id, VectorStoreFileBatchObject @object, DateTimeOffset createdAt, string vectorStoreId, VectorStoreFileBatchStatus status, VectorStoreFileCount fileCounts, IDictionary serializedAdditionalRawData) + { + Id = id; + Object = @object; + CreatedAt = createdAt; + VectorStoreId = vectorStoreId; + Status = status; + FileCounts = fileCounts; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal VectorStoreFileBatch() + { + } + + /// The identifier, which can be referenced in API endpoints. + public string Id { get; } + /// The object type, which is always `vector_store.file_batch`. + public VectorStoreFileBatchObject Object { get; } = VectorStoreFileBatchObject.VectorStoreFilesBatch; + + /// The Unix timestamp (in seconds) for when the vector store files batch was created. + public DateTimeOffset CreatedAt { get; } + /// The ID of the vector store that the file is attached to. + public string VectorStoreId { get; } + /// The status of the vector store files batch, which can be either `in_progress`, `completed`, `cancelled` or `failed`. + public VectorStoreFileBatchStatus Status { get; } + /// Files count grouped by status processed or being processed by this vector store. + public VectorStoreFileCount FileCounts { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileBatchObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileBatchObject.cs new file mode 100644 index 000000000000..ff607d482dfa --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileBatchObject.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.AI.OpenAI.Assistants +{ + /// The VectorStoreFileBatch_object. + public readonly partial struct VectorStoreFileBatchObject : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public VectorStoreFileBatchObject(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string VectorStoreFilesBatchValue = "vector_store.files_batch"; + + /// vector_store.files_batch. + public static VectorStoreFileBatchObject VectorStoreFilesBatch { get; } = new VectorStoreFileBatchObject(VectorStoreFilesBatchValue); + /// Determines if two values are the same. + public static bool operator ==(VectorStoreFileBatchObject left, VectorStoreFileBatchObject right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(VectorStoreFileBatchObject left, VectorStoreFileBatchObject right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator VectorStoreFileBatchObject(string value) => new VectorStoreFileBatchObject(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is VectorStoreFileBatchObject other && Equals(other); + /// + public bool Equals(VectorStoreFileBatchObject 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileBatchStatus.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileBatchStatus.cs new file mode 100644 index 000000000000..79d886ab6ccd --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileBatchStatus.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 Azure.AI.OpenAI.Assistants +{ + /// The status of the vector store file batch. + public readonly partial struct VectorStoreFileBatchStatus : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public VectorStoreFileBatchStatus(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string InProgressValue = "in_progress"; + private const string CompletedValue = "completed"; + private const string CancelledValue = "cancelled"; + private const string FailedValue = "failed"; + + /// The vector store is still processing this file batch. + public static VectorStoreFileBatchStatus InProgress { get; } = new VectorStoreFileBatchStatus(InProgressValue); + /// the vector store file batch is ready for use. + public static VectorStoreFileBatchStatus Completed { get; } = new VectorStoreFileBatchStatus(CompletedValue); + /// The vector store file batch was cancelled. + public static VectorStoreFileBatchStatus Cancelled { get; } = new VectorStoreFileBatchStatus(CancelledValue); + /// The vector store file batch failed to process. + public static VectorStoreFileBatchStatus Failed { get; } = new VectorStoreFileBatchStatus(FailedValue); + /// Determines if two values are the same. + public static bool operator ==(VectorStoreFileBatchStatus left, VectorStoreFileBatchStatus right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(VectorStoreFileBatchStatus left, VectorStoreFileBatchStatus right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator VectorStoreFileBatchStatus(string value) => new VectorStoreFileBatchStatus(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is VectorStoreFileBatchStatus other && Equals(other); + /// + public bool Equals(VectorStoreFileBatchStatus 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileCount.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileCount.Serialization.cs new file mode 100644 index 000000000000..5aabbfa099b3 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileCount.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.AI.OpenAI.Assistants +{ + public partial class VectorStoreFileCount : 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(VectorStoreFileCount)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("in_progress"u8); + writer.WriteNumberValue(InProgress); + writer.WritePropertyName("completed"u8); + writer.WriteNumberValue(Completed); + writer.WritePropertyName("failed"u8); + writer.WriteNumberValue(Failed); + writer.WritePropertyName("cancelled"u8); + writer.WriteNumberValue(Cancelled); + writer.WritePropertyName("total"u8); + writer.WriteNumberValue(Total); + 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 + } + } + } + + VectorStoreFileCount 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(VectorStoreFileCount)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStoreFileCount(document.RootElement, options); + } + + internal static VectorStoreFileCount DeserializeVectorStoreFileCount(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + int inProgress = default; + int completed = default; + int failed = default; + int cancelled = default; + int total = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("in_progress"u8)) + { + inProgress = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("completed"u8)) + { + completed = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("failed"u8)) + { + failed = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("cancelled"u8)) + { + cancelled = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("total"u8)) + { + total = property.Value.GetInt32(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new VectorStoreFileCount( + inProgress, + completed, + failed, + cancelled, + total, + 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(VectorStoreFileCount)} does not support writing '{options.Format}' format."); + } + } + + VectorStoreFileCount 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 DeserializeVectorStoreFileCount(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStoreFileCount)} 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 VectorStoreFileCount FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeVectorStoreFileCount(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileCount.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileCount.cs new file mode 100644 index 000000000000..a4fe9273bff4 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileCount.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 Azure.AI.OpenAI.Assistants +{ + /// Counts of files processed or being processed by this vector store grouped by status. + public partial class VectorStoreFileCount + { + /// + /// 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 number of files that are currently being processed. + /// The number of files that have been successfully processed. + /// The number of files that have failed to process. + /// The number of files that were cancelled. + /// The total number of files. + internal VectorStoreFileCount(int inProgress, int completed, int failed, int cancelled, int total) + { + InProgress = inProgress; + Completed = completed; + Failed = failed; + Cancelled = cancelled; + Total = total; + } + + /// Initializes a new instance of . + /// The number of files that are currently being processed. + /// The number of files that have been successfully processed. + /// The number of files that have failed to process. + /// The number of files that were cancelled. + /// The total number of files. + /// Keeps track of any properties unknown to the library. + internal VectorStoreFileCount(int inProgress, int completed, int failed, int cancelled, int total, IDictionary serializedAdditionalRawData) + { + InProgress = inProgress; + Completed = completed; + Failed = failed; + Cancelled = cancelled; + Total = total; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal VectorStoreFileCount() + { + } + + /// The number of files that are currently being processed. + public int InProgress { get; } + /// The number of files that have been successfully processed. + public int Completed { get; } + /// The number of files that have failed to process. + public int Failed { get; } + /// The number of files that were cancelled. + public int Cancelled { get; } + /// The total number of files. + public int Total { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileDeletionStatus.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileDeletionStatus.Serialization.cs new file mode 100644 index 000000000000..ec1a3c42e1dc --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileDeletionStatus.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.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + public partial class VectorStoreFileDeletionStatus : 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(VectorStoreFileDeletionStatus)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("id"u8); + writer.WriteStringValue(Id); + writer.WritePropertyName("deleted"u8); + writer.WriteBooleanValue(Deleted); + writer.WritePropertyName("object"u8); + writer.WriteStringValue(Object.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 + } + } + } + + VectorStoreFileDeletionStatus 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(VectorStoreFileDeletionStatus)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStoreFileDeletionStatus(document.RootElement, options); + } + + internal static VectorStoreFileDeletionStatus DeserializeVectorStoreFileDeletionStatus(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string id = default; + bool deleted = default; + VectorStoreFileDeletionStatusObject @object = 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("deleted"u8)) + { + deleted = property.Value.GetBoolean(); + continue; + } + if (property.NameEquals("object"u8)) + { + @object = new VectorStoreFileDeletionStatusObject(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new VectorStoreFileDeletionStatus(id, deleted, @object, 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(VectorStoreFileDeletionStatus)} does not support writing '{options.Format}' format."); + } + } + + VectorStoreFileDeletionStatus 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 DeserializeVectorStoreFileDeletionStatus(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStoreFileDeletionStatus)} 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 VectorStoreFileDeletionStatus FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeVectorStoreFileDeletionStatus(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileDeletionStatus.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileDeletionStatus.cs new file mode 100644 index 000000000000..009e5942a8ac --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileDeletionStatus.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Response object for deleting a vector store file relationship. + public partial class VectorStoreFileDeletionStatus + { + /// + /// 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 ID of the resource specified for deletion. + /// A value indicating whether deletion was successful. + /// is null. + internal VectorStoreFileDeletionStatus(string id, bool deleted) + { + Argument.AssertNotNull(id, nameof(id)); + + Id = id; + Deleted = deleted; + } + + /// Initializes a new instance of . + /// The ID of the resource specified for deletion. + /// A value indicating whether deletion was successful. + /// The object type, which is always 'vector_store.deleted'. + /// Keeps track of any properties unknown to the library. + internal VectorStoreFileDeletionStatus(string id, bool deleted, VectorStoreFileDeletionStatusObject @object, IDictionary serializedAdditionalRawData) + { + Id = id; + Deleted = deleted; + Object = @object; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal VectorStoreFileDeletionStatus() + { + } + + /// The ID of the resource specified for deletion. + public string Id { get; } + /// A value indicating whether deletion was successful. + public bool Deleted { get; } + /// The object type, which is always 'vector_store.deleted'. + public VectorStoreFileDeletionStatusObject Object { get; } = VectorStoreFileDeletionStatusObject.VectorStoreFileDeleted; + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileDeletionStatusObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileDeletionStatusObject.cs new file mode 100644 index 000000000000..ebd2a6f4d22f --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileDeletionStatusObject.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.AI.OpenAI.Assistants +{ + /// The VectorStoreFileDeletionStatus_object. + public readonly partial struct VectorStoreFileDeletionStatusObject : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public VectorStoreFileDeletionStatusObject(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string VectorStoreFileDeletedValue = "vector_store.file.deleted"; + + /// vector_store.file.deleted. + public static VectorStoreFileDeletionStatusObject VectorStoreFileDeleted { get; } = new VectorStoreFileDeletionStatusObject(VectorStoreFileDeletedValue); + /// Determines if two values are the same. + public static bool operator ==(VectorStoreFileDeletionStatusObject left, VectorStoreFileDeletionStatusObject right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(VectorStoreFileDeletionStatusObject left, VectorStoreFileDeletionStatusObject right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator VectorStoreFileDeletionStatusObject(string value) => new VectorStoreFileDeletionStatusObject(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is VectorStoreFileDeletionStatusObject other && Equals(other); + /// + public bool Equals(VectorStoreFileDeletionStatusObject 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileError.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileError.Serialization.cs new file mode 100644 index 000000000000..daf2ec2550de --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileError.Serialization.cs @@ -0,0 +1,150 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class VectorStoreFileError : 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(VectorStoreFileError)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("code"u8); + writer.WriteStringValue(Code.ToString()); + writer.WritePropertyName("message"u8); + writer.WriteStringValue(Message); + 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 + } + } + } + + VectorStoreFileError 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(VectorStoreFileError)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStoreFileError(document.RootElement, options); + } + + internal static VectorStoreFileError DeserializeVectorStoreFileError(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + VectorStoreFileErrorCode code = default; + string message = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("code"u8)) + { + code = new VectorStoreFileErrorCode(property.Value.GetString()); + continue; + } + if (property.NameEquals("message"u8)) + { + message = property.Value.GetString(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new VectorStoreFileError(code, message, 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(VectorStoreFileError)} does not support writing '{options.Format}' format."); + } + } + + VectorStoreFileError 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 DeserializeVectorStoreFileError(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStoreFileError)} 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 VectorStoreFileError FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeVectorStoreFileError(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileError.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileError.cs new file mode 100644 index 000000000000..5c96944e5f8e --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileError.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.AI.OpenAI.Assistants +{ + /// Details on the error that may have ocurred while processing a file for this vector store. + public partial class VectorStoreFileError + { + /// + /// 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 . + /// One of `server_error` or `rate_limit_exceeded`. + /// A human-readable description of the error. + /// is null. + internal VectorStoreFileError(VectorStoreFileErrorCode code, string message) + { + Argument.AssertNotNull(message, nameof(message)); + + Code = code; + Message = message; + } + + /// Initializes a new instance of . + /// One of `server_error` or `rate_limit_exceeded`. + /// A human-readable description of the error. + /// Keeps track of any properties unknown to the library. + internal VectorStoreFileError(VectorStoreFileErrorCode code, string message, IDictionary serializedAdditionalRawData) + { + Code = code; + Message = message; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal VectorStoreFileError() + { + } + + /// One of `server_error` or `rate_limit_exceeded`. + public VectorStoreFileErrorCode Code { get; } + /// A human-readable description of the error. + public string Message { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileErrorCode.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileErrorCode.cs new file mode 100644 index 000000000000..62944f11529e --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileErrorCode.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.AI.OpenAI.Assistants +{ + /// Error code variants for vector store file processing. + public readonly partial struct VectorStoreFileErrorCode : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public VectorStoreFileErrorCode(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string ServerErrorValue = "server_error"; + private const string UnsupportedFileValue = "unsupported_file"; + private const string InvalidFileValue = "invalid_file"; + + /// The server encountered an error. + public static VectorStoreFileErrorCode ServerError { get; } = new VectorStoreFileErrorCode(ServerErrorValue); + /// The file format is not supported. + public static VectorStoreFileErrorCode UnsupportedFile { get; } = new VectorStoreFileErrorCode(UnsupportedFileValue); + /// The file is invalid. + public static VectorStoreFileErrorCode InvalidFile { get; } = new VectorStoreFileErrorCode(InvalidFileValue); + /// Determines if two values are the same. + public static bool operator ==(VectorStoreFileErrorCode left, VectorStoreFileErrorCode right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(VectorStoreFileErrorCode left, VectorStoreFileErrorCode right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator VectorStoreFileErrorCode(string value) => new VectorStoreFileErrorCode(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is VectorStoreFileErrorCode other && Equals(other); + /// + public bool Equals(VectorStoreFileErrorCode 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileObject.cs new file mode 100644 index 000000000000..f4d205e40ce2 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileObject.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.AI.OpenAI.Assistants +{ + /// The VectorStoreFile_object. + public readonly partial struct VectorStoreFileObject : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public VectorStoreFileObject(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string VectorStoreFileValue = "vector_store.file"; + + /// vector_store.file. + public static VectorStoreFileObject VectorStoreFile { get; } = new VectorStoreFileObject(VectorStoreFileValue); + /// Determines if two values are the same. + public static bool operator ==(VectorStoreFileObject left, VectorStoreFileObject right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(VectorStoreFileObject left, VectorStoreFileObject right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator VectorStoreFileObject(string value) => new VectorStoreFileObject(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is VectorStoreFileObject other && Equals(other); + /// + public bool Equals(VectorStoreFileObject 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileStatus.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileStatus.cs new file mode 100644 index 000000000000..62c5dc3711e8 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileStatus.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 Azure.AI.OpenAI.Assistants +{ + /// Vector store file status. + public readonly partial struct VectorStoreFileStatus : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public VectorStoreFileStatus(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string InProgressValue = "in_progress"; + private const string CompletedValue = "completed"; + private const string FailedValue = "failed"; + private const string CancelledValue = "cancelled"; + + /// The file is currently being processed. + public static VectorStoreFileStatus InProgress { get; } = new VectorStoreFileStatus(InProgressValue); + /// The file has been successfully processed. + public static VectorStoreFileStatus Completed { get; } = new VectorStoreFileStatus(CompletedValue); + /// The file has failed to process. + public static VectorStoreFileStatus Failed { get; } = new VectorStoreFileStatus(FailedValue); + /// The file was cancelled. + public static VectorStoreFileStatus Cancelled { get; } = new VectorStoreFileStatus(CancelledValue); + /// Determines if two values are the same. + public static bool operator ==(VectorStoreFileStatus left, VectorStoreFileStatus right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(VectorStoreFileStatus left, VectorStoreFileStatus right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator VectorStoreFileStatus(string value) => new VectorStoreFileStatus(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is VectorStoreFileStatus other && Equals(other); + /// + public bool Equals(VectorStoreFileStatus 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileStatusFilter.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileStatusFilter.cs new file mode 100644 index 000000000000..cd796f8cae2a --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreFileStatusFilter.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 Azure.AI.OpenAI.Assistants +{ + /// Query parameter filter for vector store file retrieval endpoint. + public readonly partial struct VectorStoreFileStatusFilter : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public VectorStoreFileStatusFilter(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string InProgressValue = "in_progress"; + private const string CompletedValue = "completed"; + private const string FailedValue = "failed"; + private const string CancelledValue = "cancelled"; + + /// Retrieve only files that are currently being processed. + public static VectorStoreFileStatusFilter InProgress { get; } = new VectorStoreFileStatusFilter(InProgressValue); + /// Retrieve only files that have been successfully processed. + public static VectorStoreFileStatusFilter Completed { get; } = new VectorStoreFileStatusFilter(CompletedValue); + /// Retrieve only files that have failed to process. + public static VectorStoreFileStatusFilter Failed { get; } = new VectorStoreFileStatusFilter(FailedValue); + /// Retrieve only files that were cancelled. + public static VectorStoreFileStatusFilter Cancelled { get; } = new VectorStoreFileStatusFilter(CancelledValue); + /// Determines if two values are the same. + public static bool operator ==(VectorStoreFileStatusFilter left, VectorStoreFileStatusFilter right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(VectorStoreFileStatusFilter left, VectorStoreFileStatusFilter right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator VectorStoreFileStatusFilter(string value) => new VectorStoreFileStatusFilter(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is VectorStoreFileStatusFilter other && Equals(other); + /// + public bool Equals(VectorStoreFileStatusFilter 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreObject.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreObject.cs new file mode 100644 index 000000000000..abbc8b915139 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreObject.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.AI.OpenAI.Assistants +{ + /// The VectorStore_object. + public readonly partial struct VectorStoreObject : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public VectorStoreObject(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string VectorStoreValue = "vector_store"; + + /// vector_store. + public static VectorStoreObject VectorStore { get; } = new VectorStoreObject(VectorStoreValue); + /// Determines if two values are the same. + public static bool operator ==(VectorStoreObject left, VectorStoreObject right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(VectorStoreObject left, VectorStoreObject right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator VectorStoreObject(string value) => new VectorStoreObject(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is VectorStoreObject other && Equals(other); + /// + public bool Equals(VectorStoreObject 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreOptions.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreOptions.Serialization.cs new file mode 100644 index 000000000000..31572f50309a --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreOptions.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.AI.OpenAI.Assistants +{ + public partial class VectorStoreOptions : 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(VectorStoreOptions)} does not support writing '{format}' format."); + } + + if (Optional.IsCollectionDefined(FileIds)) + { + writer.WritePropertyName("file_ids"u8); + writer.WriteStartArray(); + foreach (var item in FileIds) + { + writer.WriteStringValue(item); + } + writer.WriteEndArray(); + } + if (Optional.IsDefined(Name)) + { + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); + } + if (Optional.IsDefined(ExpiresAfter)) + { + writer.WritePropertyName("expires_after"u8); + writer.WriteObjectValue(ExpiresAfter, options); + } + if (Optional.IsDefined(ChunkingStrategy)) + { + writer.WritePropertyName("chunking_strategy"u8); + writer.WriteObjectValue(ChunkingStrategy, options); + } + if (Optional.IsCollectionDefined(Metadata)) + { + if (Metadata != null) + { + writer.WritePropertyName("metadata"u8); + writer.WriteStartObject(); + foreach (var item in Metadata) + { + writer.WritePropertyName(item.Key); + writer.WriteStringValue(item.Value); + } + writer.WriteEndObject(); + } + else + { + writer.WriteNull("metadata"); + } + } + 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 + } + } + } + + VectorStoreOptions 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(VectorStoreOptions)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStoreOptions(document.RootElement, options); + } + + internal static VectorStoreOptions DeserializeVectorStoreOptions(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IList fileIds = default; + string name = default; + VectorStoreExpirationPolicy expiresAfter = default; + VectorStoreChunkingStrategyRequest chunkingStrategy = default; + IDictionary metadata = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("file_ids"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + fileIds = array; + continue; + } + if (property.NameEquals("name"u8)) + { + name = property.Value.GetString(); + continue; + } + if (property.NameEquals("expires_after"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + expiresAfter = VectorStoreExpirationPolicy.DeserializeVectorStoreExpirationPolicy(property.Value, options); + continue; + } + if (property.NameEquals("chunking_strategy"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + chunkingStrategy = VectorStoreChunkingStrategyRequest.DeserializeVectorStoreChunkingStrategyRequest(property.Value, options); + continue; + } + if (property.NameEquals("metadata"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var property0 in property.Value.EnumerateObject()) + { + dictionary.Add(property0.Name, property0.Value.GetString()); + } + metadata = dictionary; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new VectorStoreOptions( + fileIds ?? new ChangeTrackingList(), + name, + expiresAfter, + chunkingStrategy, + metadata ?? new ChangeTrackingDictionary(), + 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(VectorStoreOptions)} does not support writing '{options.Format}' format."); + } + } + + VectorStoreOptions 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 DeserializeVectorStoreOptions(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStoreOptions)} 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 VectorStoreOptions FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeVectorStoreOptions(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreOptions.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreOptions.cs new file mode 100644 index 000000000000..2aa8bd2f3858 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreOptions.cs @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// Request object for creating a vector store. + public partial class VectorStoreOptions + { + /// + /// 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 VectorStoreOptions() + { + FileIds = new ChangeTrackingList(); + Metadata = new ChangeTrackingDictionary(); + } + + /// Initializes a new instance of . + /// A list of file IDs that the vector store should use. Useful for tools like `file_search` that can access files. + /// The name of the vector store. + /// Details on when this vector store expires. + /// + /// The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. Only applicable if file_ids is non-empty. + /// 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 . + /// + /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. + /// Keeps track of any properties unknown to the library. + internal VectorStoreOptions(IList fileIds, string name, VectorStoreExpirationPolicy expiresAfter, VectorStoreChunkingStrategyRequest chunkingStrategy, IDictionary metadata, IDictionary serializedAdditionalRawData) + { + FileIds = fileIds; + Name = name; + ExpiresAfter = expiresAfter; + ChunkingStrategy = chunkingStrategy; + Metadata = metadata; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// A list of file IDs that the vector store should use. Useful for tools like `file_search` that can access files. + public IList FileIds { get; } + /// The name of the vector store. + public string Name { get; set; } + /// Details on when this vector store expires. + public VectorStoreExpirationPolicy ExpiresAfter { get; set; } + /// + /// The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. Only applicable if file_ids is non-empty. + /// 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 VectorStoreChunkingStrategyRequest ChunkingStrategy { get; set; } + /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. + public IDictionary Metadata { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyOptions.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyOptions.Serialization.cs new file mode 100644 index 000000000000..21b248f546ff --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyOptions.Serialization.cs @@ -0,0 +1,150 @@ +// 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.AI.OpenAI.Assistants +{ + public partial class VectorStoreStaticChunkingStrategyOptions : 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(VectorStoreStaticChunkingStrategyOptions)} does not support writing '{format}' format."); + } + + writer.WritePropertyName("max_chunk_size_tokens"u8); + writer.WriteNumberValue(MaxChunkSizeTokens); + writer.WritePropertyName("chunk_overlap_tokens"u8); + writer.WriteNumberValue(ChunkOverlapTokens); + 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 + } + } + } + + VectorStoreStaticChunkingStrategyOptions 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(VectorStoreStaticChunkingStrategyOptions)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStoreStaticChunkingStrategyOptions(document.RootElement, options); + } + + internal static VectorStoreStaticChunkingStrategyOptions DeserializeVectorStoreStaticChunkingStrategyOptions(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + int maxChunkSizeTokens = default; + int chunkOverlapTokens = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("max_chunk_size_tokens"u8)) + { + maxChunkSizeTokens = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("chunk_overlap_tokens"u8)) + { + chunkOverlapTokens = property.Value.GetInt32(); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new VectorStoreStaticChunkingStrategyOptions(maxChunkSizeTokens, chunkOverlapTokens, 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(VectorStoreStaticChunkingStrategyOptions)} does not support writing '{options.Format}' format."); + } + } + + VectorStoreStaticChunkingStrategyOptions 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 DeserializeVectorStoreStaticChunkingStrategyOptions(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStoreStaticChunkingStrategyOptions)} 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 VectorStoreStaticChunkingStrategyOptions FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeVectorStoreStaticChunkingStrategyOptions(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyOptions.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyOptions.cs new file mode 100644 index 000000000000..38db6670abf3 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyOptions.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 Azure.AI.OpenAI.Assistants +{ + /// Options to configure a vector store static chunking strategy. + public partial class VectorStoreStaticChunkingStrategyOptions + { + /// + /// 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 maximum number of tokens in each chunk. The default value is 800. The minimum value is 100 and the maximum value is 4096. + /// + /// The number of tokens that overlap between chunks. The default value is 400. + /// Note that the overlap must not exceed half of max_chunk_size_tokens. * + /// + public VectorStoreStaticChunkingStrategyOptions(int maxChunkSizeTokens, int chunkOverlapTokens) + { + MaxChunkSizeTokens = maxChunkSizeTokens; + ChunkOverlapTokens = chunkOverlapTokens; + } + + /// Initializes a new instance of . + /// The maximum number of tokens in each chunk. The default value is 800. The minimum value is 100 and the maximum value is 4096. + /// + /// The number of tokens that overlap between chunks. The default value is 400. + /// Note that the overlap must not exceed half of max_chunk_size_tokens. * + /// + /// Keeps track of any properties unknown to the library. + internal VectorStoreStaticChunkingStrategyOptions(int maxChunkSizeTokens, int chunkOverlapTokens, IDictionary serializedAdditionalRawData) + { + MaxChunkSizeTokens = maxChunkSizeTokens; + ChunkOverlapTokens = chunkOverlapTokens; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal VectorStoreStaticChunkingStrategyOptions() + { + } + + /// The maximum number of tokens in each chunk. The default value is 800. The minimum value is 100 and the maximum value is 4096. + public int MaxChunkSizeTokens { get; set; } + /// + /// The number of tokens that overlap between chunks. The default value is 400. + /// Note that the overlap must not exceed half of max_chunk_size_tokens. * + /// + public int ChunkOverlapTokens { get; set; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyRequest.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyRequest.Serialization.cs new file mode 100644 index 000000000000..25e218d5e3ed --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyRequest.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.AI.OpenAI.Assistants +{ + public partial class VectorStoreStaticChunkingStrategyRequest : 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(VectorStoreStaticChunkingStrategyRequest)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + writer.WritePropertyName("static"u8); + writer.WriteObjectValue(Static, options); + } + + VectorStoreStaticChunkingStrategyRequest 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(VectorStoreStaticChunkingStrategyRequest)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStoreStaticChunkingStrategyRequest(document.RootElement, options); + } + + internal static VectorStoreStaticChunkingStrategyRequest DeserializeVectorStoreStaticChunkingStrategyRequest(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + VectorStoreStaticChunkingStrategyOptions @static = default; + VectorStoreChunkingStrategyRequestType type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("static"u8)) + { + @static = VectorStoreStaticChunkingStrategyOptions.DeserializeVectorStoreStaticChunkingStrategyOptions(property.Value, options); + continue; + } + if (property.NameEquals("type"u8)) + { + type = new VectorStoreChunkingStrategyRequestType(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new VectorStoreStaticChunkingStrategyRequest(type, serializedAdditionalRawData, @static); + } + + 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(VectorStoreStaticChunkingStrategyRequest)} does not support writing '{options.Format}' format."); + } + } + + VectorStoreStaticChunkingStrategyRequest 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 DeserializeVectorStoreStaticChunkingStrategyRequest(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStoreStaticChunkingStrategyRequest)} 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 VectorStoreStaticChunkingStrategyRequest FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeVectorStoreStaticChunkingStrategyRequest(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyRequest.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyRequest.cs new file mode 100644 index 000000000000..0a65da2962bd --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyRequest.cs @@ -0,0 +1,44 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// A statically configured chunking strategy. + public partial class VectorStoreStaticChunkingStrategyRequest : VectorStoreChunkingStrategyRequest + { + /// Initializes a new instance of . + /// The options for the static chunking strategy. + /// is null. + public VectorStoreStaticChunkingStrategyRequest(VectorStoreStaticChunkingStrategyOptions @static) + { + Argument.AssertNotNull(@static, nameof(@static)); + + Type = VectorStoreChunkingStrategyRequestType.Static; + Static = @static; + } + + /// Initializes a new instance of . + /// The object type. + /// Keeps track of any properties unknown to the library. + /// The options for the static chunking strategy. + internal VectorStoreStaticChunkingStrategyRequest(VectorStoreChunkingStrategyRequestType type, IDictionary serializedAdditionalRawData, VectorStoreStaticChunkingStrategyOptions @static) : base(type, serializedAdditionalRawData) + { + Static = @static; + } + + /// Initializes a new instance of for deserialization. + internal VectorStoreStaticChunkingStrategyRequest() + { + } + + /// The options for the static chunking strategy. + public VectorStoreStaticChunkingStrategyOptions Static { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyResponse.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyResponse.Serialization.cs new file mode 100644 index 000000000000..a116c8ce6fe6 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyResponse.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.AI.OpenAI.Assistants +{ + public partial class VectorStoreStaticChunkingStrategyResponse : 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(VectorStoreStaticChunkingStrategyResponse)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + writer.WritePropertyName("static"u8); + writer.WriteObjectValue(Static, options); + } + + VectorStoreStaticChunkingStrategyResponse 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(VectorStoreStaticChunkingStrategyResponse)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStoreStaticChunkingStrategyResponse(document.RootElement, options); + } + + internal static VectorStoreStaticChunkingStrategyResponse DeserializeVectorStoreStaticChunkingStrategyResponse(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + VectorStoreStaticChunkingStrategyOptions @static = default; + VectorStoreChunkingStrategyResponseType type = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("static"u8)) + { + @static = VectorStoreStaticChunkingStrategyOptions.DeserializeVectorStoreStaticChunkingStrategyOptions(property.Value, options); + continue; + } + if (property.NameEquals("type"u8)) + { + type = new VectorStoreChunkingStrategyResponseType(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new VectorStoreStaticChunkingStrategyResponse(type, serializedAdditionalRawData, @static); + } + + 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(VectorStoreStaticChunkingStrategyResponse)} does not support writing '{options.Format}' format."); + } + } + + VectorStoreStaticChunkingStrategyResponse 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 DeserializeVectorStoreStaticChunkingStrategyResponse(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStoreStaticChunkingStrategyResponse)} 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 VectorStoreStaticChunkingStrategyResponse FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeVectorStoreStaticChunkingStrategyResponse(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyResponse.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyResponse.cs new file mode 100644 index 000000000000..5d2a0200bdcd --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStaticChunkingStrategyResponse.cs @@ -0,0 +1,44 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.AI.OpenAI.Assistants +{ + /// A statically configured chunking strategy. + public partial class VectorStoreStaticChunkingStrategyResponse : VectorStoreChunkingStrategyResponse + { + /// Initializes a new instance of . + /// The options for the static chunking strategy. + /// is null. + internal VectorStoreStaticChunkingStrategyResponse(VectorStoreStaticChunkingStrategyOptions @static) + { + Argument.AssertNotNull(@static, nameof(@static)); + + Type = VectorStoreChunkingStrategyResponseType.Static; + Static = @static; + } + + /// Initializes a new instance of . + /// The object type. + /// Keeps track of any properties unknown to the library. + /// The options for the static chunking strategy. + internal VectorStoreStaticChunkingStrategyResponse(VectorStoreChunkingStrategyResponseType type, IDictionary serializedAdditionalRawData, VectorStoreStaticChunkingStrategyOptions @static) : base(type, serializedAdditionalRawData) + { + Static = @static; + } + + /// Initializes a new instance of for deserialization. + internal VectorStoreStaticChunkingStrategyResponse() + { + } + + /// The options for the static chunking strategy. + public VectorStoreStaticChunkingStrategyOptions Static { get; } + } +} diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStatus.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStatus.cs new file mode 100644 index 000000000000..d8b1d0e87b45 --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreStatus.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.AI.OpenAI.Assistants +{ + /// Vector store possible status. + public readonly partial struct VectorStoreStatus : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public VectorStoreStatus(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string ExpiredValue = "expired"; + private const string InProgressValue = "in_progress"; + private const string CompletedValue = "completed"; + + /// expired status indicates that this vector store has expired and is no longer available for use. + public static VectorStoreStatus Expired { get; } = new VectorStoreStatus(ExpiredValue); + /// in_progress status indicates that this vector store is still processing files. + public static VectorStoreStatus InProgress { get; } = new VectorStoreStatus(InProgressValue); + /// completed status indicates that this vector store is ready for use. + public static VectorStoreStatus Completed { get; } = new VectorStoreStatus(CompletedValue); + /// Determines if two values are the same. + public static bool operator ==(VectorStoreStatus left, VectorStoreStatus right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(VectorStoreStatus left, VectorStoreStatus right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator VectorStoreStatus(string value) => new VectorStoreStatus(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is VectorStoreStatus other && Equals(other); + /// + public bool Equals(VectorStoreStatus 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/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreUpdateOptions.Serialization.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreUpdateOptions.Serialization.cs new file mode 100644 index 000000000000..584d6fa01c6a --- /dev/null +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreUpdateOptions.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.Core; + +namespace Azure.AI.OpenAI.Assistants +{ + public partial class VectorStoreUpdateOptions : 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(VectorStoreUpdateOptions)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(Name)) + { + if (Name != null) + { + writer.WritePropertyName("name"u8); + writer.WriteStringValue(Name); + } + else + { + writer.WriteNull("name"); + } + } + if (Optional.IsDefined(ExpiresAfter)) + { + if (ExpiresAfter != null) + { + writer.WritePropertyName("expires_after"u8); + writer.WriteObjectValue(ExpiresAfter, options); + } + else + { + writer.WriteNull("expires_after"); + } + } + if (Optional.IsCollectionDefined(Metadata)) + { + if (Metadata != null) + { + writer.WritePropertyName("metadata"u8); + writer.WriteStartObject(); + foreach (var item in Metadata) + { + writer.WritePropertyName(item.Key); + writer.WriteStringValue(item.Value); + } + writer.WriteEndObject(); + } + else + { + writer.WriteNull("metadata"); + } + } + 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 + } + } + } + + VectorStoreUpdateOptions 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(VectorStoreUpdateOptions)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeVectorStoreUpdateOptions(document.RootElement, options); + } + + internal static VectorStoreUpdateOptions DeserializeVectorStoreUpdateOptions(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string name = default; + VectorStoreExpirationPolicy expiresAfter = default; + IDictionary metadata = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("name"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + name = null; + continue; + } + name = property.Value.GetString(); + continue; + } + if (property.NameEquals("expires_after"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + expiresAfter = null; + continue; + } + expiresAfter = VectorStoreExpirationPolicy.DeserializeVectorStoreExpirationPolicy(property.Value, options); + continue; + } + if (property.NameEquals("metadata"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var property0 in property.Value.EnumerateObject()) + { + dictionary.Add(property0.Name, property0.Value.GetString()); + } + metadata = dictionary; + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new VectorStoreUpdateOptions(name, expiresAfter, metadata ?? new ChangeTrackingDictionary(), 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(VectorStoreUpdateOptions)} does not support writing '{options.Format}' format."); + } + } + + VectorStoreUpdateOptions 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 DeserializeVectorStoreUpdateOptions(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(VectorStoreUpdateOptions)} 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 VectorStoreUpdateOptions FromResponse(Response response) + { + using var document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeVectorStoreUpdateOptions(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/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateThreadRequest.cs b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreUpdateOptions.cs similarity index 69% rename from sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateThreadRequest.cs rename to sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreUpdateOptions.cs index 46ab2f35dbcb..e3bcef35dc48 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/UpdateThreadRequest.cs +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/src/Generated/VectorStoreUpdateOptions.cs @@ -10,8 +10,8 @@ namespace Azure.AI.OpenAI.Assistants { - /// The UpdateThreadRequest. - internal partial class UpdateThreadRequest + /// Request object for updating a vector store. + public partial class VectorStoreUpdateOptions { /// /// Keeps track of any properties unknown to the library. @@ -45,22 +45,30 @@ internal partial class UpdateThreadRequest /// private IDictionary _serializedAdditionalRawData; - /// Initializes a new instance of . - internal UpdateThreadRequest() + /// Initializes a new instance of . + public VectorStoreUpdateOptions() { Metadata = new ChangeTrackingDictionary(); } - /// Initializes a new instance of . + /// Initializes a new instance of . + /// The name of the vector store. + /// Details on when this vector store expires. /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. /// Keeps track of any properties unknown to the library. - internal UpdateThreadRequest(IReadOnlyDictionary metadata, IDictionary serializedAdditionalRawData) + internal VectorStoreUpdateOptions(string name, VectorStoreExpirationPolicy expiresAfter, IDictionary metadata, IDictionary serializedAdditionalRawData) { + Name = name; + ExpiresAfter = expiresAfter; Metadata = metadata; _serializedAdditionalRawData = serializedAdditionalRawData; } + /// The name of the vector store. + public string Name { get; set; } + /// Details on when this vector store expires. + public VectorStoreExpirationPolicy ExpiresAfter { get; set; } /// A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. - public IReadOnlyDictionary Metadata { get; } + public IDictionary Metadata { get; set; } } } diff --git a/sdk/openai/Azure.AI.OpenAI.Assistants/tsp-location.yaml b/sdk/openai/Azure.AI.OpenAI.Assistants/tsp-location.yaml index 58f812caec89..654b32eb7ad5 100644 --- a/sdk/openai/Azure.AI.OpenAI.Assistants/tsp-location.yaml +++ b/sdk/openai/Azure.AI.OpenAI.Assistants/tsp-location.yaml @@ -1,3 +1,4 @@ directory: specification/ai/OpenAI.Assistants -commit: 4fef3a8d819f8fc8eef6a3b68320f710e666b72a +commit: 27a6a18feb693251ea80d1894f77fe8c0fdce06a repo: Azure/azure-rest-api-specs +additionalDirectories: diff --git a/sdk/resourcemanager/ci.mgmt.yml b/sdk/resourcemanager/ci.mgmt.yml index 15e7655c7b93..7cf5e60ceb80 100644 --- a/sdk/resourcemanager/ci.mgmt.yml +++ b/sdk/resourcemanager/ci.mgmt.yml @@ -183,6 +183,7 @@ trigger: - sdk/servicelinker/Azure.ResourceManager.ServiceLinker - sdk/servicenetworking/Azure.ResourceManager.ServiceNetworking - sdk/signalr/Azure.ResourceManager.SignalR + - sdk/sitemanager/Azure.ResourceManager.SiteManager - sdk/sphere/Azure.ResourceManager.Sphere - sdk/springappdiscovery/Azure.ResourceManager.SpringAppDiscovery - sdk/sqlmanagement/Azure.ResourceManager.Sql @@ -391,6 +392,7 @@ pr: - sdk/servicelinker/Azure.ResourceManager.ServiceLinker - sdk/servicenetworking/Azure.ResourceManager.ServiceNetworking - sdk/signalr/Azure.ResourceManager.SignalR + - sdk/sitemanager/Azure.ResourceManager.SiteManager - sdk/sphere/Azure.ResourceManager.Sphere - sdk/springappdiscovery/Azure.ResourceManager.SpringAppDiscovery - sdk/sqlmanagement/Azure.ResourceManager.Sql diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/Azure.ResourceManager.SiteManager.sln b/sdk/sitemanager/Azure.ResourceManager.SiteManager/Azure.ResourceManager.SiteManager.sln new file mode 100644 index 000000000000..3e41f05eca9c --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/Azure.ResourceManager.SiteManager.sln @@ -0,0 +1,54 @@ +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.SiteManager.Samples", "samples\Azure.ResourceManager.SiteManager.Samples.csproj", "{7A2DFF15-5746-49F4-BD0F-C6C35337088A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Azure.ResourceManager.SiteManager", "src\Azure.ResourceManager.SiteManager.csproj", "{28FF4005-4467-4E36-92E7-DEA27DEB1519}" +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/sitemanager/Azure.ResourceManager.SiteManager/CHANGELOG.md b/sdk/sitemanager/Azure.ResourceManager.SiteManager/CHANGELOG.md new file mode 100644 index 000000000000..8b33f0fedccc --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/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/sitemanager/Azure.ResourceManager.SiteManager/Directory.Build.props b/sdk/sitemanager/Azure.ResourceManager.SiteManager/Directory.Build.props new file mode 100644 index 000000000000..63bd836ad44b --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/Directory.Build.props @@ -0,0 +1,6 @@ + + + + diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/README.md b/sdk/sitemanager/Azure.ResourceManager.SiteManager/README.md new file mode 100644 index 000000000000..c2f1cb55a1f5 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/README.md @@ -0,0 +1,80 @@ +# Microsoft Azure SiteManager 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 SiteManager management library for .NET with [NuGet](https://www.nuget.org/): + +```dotnetcli +dotnet add package Azure.ResourceManager.SiteManager --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/sitemanager/Azure.ResourceManager.SiteManager/api/Azure.ResourceManager.SiteManager.net8.0.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/api/Azure.ResourceManager.SiteManager.net8.0.cs new file mode 100644 index 000000000000..d391e0ac9db6 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/api/Azure.ResourceManager.SiteManager.net8.0.cs @@ -0,0 +1,185 @@ +namespace Azure.ResourceManager.SiteManager +{ + public partial class ResourceGroupSiteCollection : Azure.ResourceManager.ArmCollection, System.Collections.Generic.IAsyncEnumerable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + protected ResourceGroupSiteCollection() { } + public virtual Azure.ResourceManager.ArmOperation CreateOrUpdate(Azure.WaitUntil waitUntil, string siteName, Azure.ResourceManager.SiteManager.SiteData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> CreateOrUpdateAsync(Azure.WaitUntil waitUntil, string siteName, Azure.ResourceManager.SiteManager.SiteData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Exists(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> ExistsAsync(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(string siteName, 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 siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.NullableResponse GetIfExists(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetIfExistsAsync(string siteName, 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 ResourceGroupSiteResource : Azure.ResourceManager.ArmResource, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public static readonly Azure.Core.ResourceType ResourceType; + protected ResourceGroupSiteResource() { } + public virtual Azure.ResourceManager.SiteManager.SiteData Data { get { throw null; } } + public virtual bool HasData { get { throw null; } } + public static Azure.Core.ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string resourceGroupName, string siteName) { 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.SiteManager.SiteData 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.SiteManager.SiteData 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.SiteManager.Models.SiteUpdate properties, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> UpdateAsync(Azure.ResourceManager.SiteManager.Models.SiteUpdate properties, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + } + public partial class SiteData : Azure.ResourceManager.Models.ResourceData, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public SiteData() { } + public Azure.ResourceManager.SiteManager.Models.SiteProperties Properties { get { throw null; } set { } } + protected override void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.SiteManager.SiteData 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.SiteManager.SiteData 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 SiteManagerExtensions + { + public static Azure.Response GetResourceGroupSite(this Azure.ResourceManager.Resources.ResourceGroupResource resourceGroupResource, string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static System.Threading.Tasks.Task> GetResourceGroupSiteAsync(this Azure.ResourceManager.Resources.ResourceGroupResource resourceGroupResource, string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static Azure.ResourceManager.SiteManager.ResourceGroupSiteResource GetResourceGroupSiteResource(this Azure.ResourceManager.ArmClient client, Azure.Core.ResourceIdentifier id) { throw null; } + public static Azure.ResourceManager.SiteManager.ResourceGroupSiteCollection GetResourceGroupSites(this Azure.ResourceManager.Resources.ResourceGroupResource resourceGroupResource) { throw null; } + public static Azure.Response GetSubscriptionSite(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static System.Threading.Tasks.Task> GetSubscriptionSiteAsync(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static Azure.ResourceManager.SiteManager.SubscriptionSiteResource GetSubscriptionSiteResource(this Azure.ResourceManager.ArmClient client, Azure.Core.ResourceIdentifier id) { throw null; } + public static Azure.ResourceManager.SiteManager.SubscriptionSiteCollection GetSubscriptionSites(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource) { throw null; } + } + public partial class SubscriptionSiteCollection : Azure.ResourceManager.ArmCollection, System.Collections.Generic.IAsyncEnumerable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + protected SubscriptionSiteCollection() { } + public virtual Azure.ResourceManager.ArmOperation CreateOrUpdate(Azure.WaitUntil waitUntil, string siteName, Azure.ResourceManager.SiteManager.SiteData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> CreateOrUpdateAsync(Azure.WaitUntil waitUntil, string siteName, Azure.ResourceManager.SiteManager.SiteData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Exists(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> ExistsAsync(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(string siteName, 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 siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.NullableResponse GetIfExists(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetIfExistsAsync(string siteName, 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 SubscriptionSiteResource : Azure.ResourceManager.ArmResource, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public static readonly Azure.Core.ResourceType ResourceType; + protected SubscriptionSiteResource() { } + public virtual Azure.ResourceManager.SiteManager.SiteData Data { get { throw null; } } + public virtual bool HasData { get { throw null; } } + public static Azure.Core.ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string siteName) { 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.SiteManager.SiteData 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.SiteManager.SiteData 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.SiteManager.Models.SiteUpdate properties, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> UpdateAsync(Azure.ResourceManager.SiteManager.Models.SiteUpdate properties, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + } +} +namespace Azure.ResourceManager.SiteManager.Mocking +{ + public partial class MockableSiteManagerArmClient : Azure.ResourceManager.ArmResource + { + protected MockableSiteManagerArmClient() { } + public virtual Azure.ResourceManager.SiteManager.ResourceGroupSiteResource GetResourceGroupSiteResource(Azure.Core.ResourceIdentifier id) { throw null; } + public virtual Azure.ResourceManager.SiteManager.SubscriptionSiteResource GetSubscriptionSiteResource(Azure.Core.ResourceIdentifier id) { throw null; } + } + public partial class MockableSiteManagerResourceGroupResource : Azure.ResourceManager.ArmResource + { + protected MockableSiteManagerResourceGroupResource() { } + public virtual Azure.Response GetResourceGroupSite(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetResourceGroupSiteAsync(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.ResourceManager.SiteManager.ResourceGroupSiteCollection GetResourceGroupSites() { throw null; } + } + public partial class MockableSiteManagerSubscriptionResource : Azure.ResourceManager.ArmResource + { + protected MockableSiteManagerSubscriptionResource() { } + public virtual Azure.Response GetSubscriptionSite(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetSubscriptionSiteAsync(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.ResourceManager.SiteManager.SubscriptionSiteCollection GetSubscriptionSites() { throw null; } + } +} +namespace Azure.ResourceManager.SiteManager.Models +{ + public static partial class ArmSiteManagerModelFactory + { + public static Azure.ResourceManager.SiteManager.SiteData SiteData(Azure.Core.ResourceIdentifier id = null, string name = null, Azure.Core.ResourceType resourceType = default(Azure.Core.ResourceType), Azure.ResourceManager.Models.SystemData systemData = null, Azure.ResourceManager.SiteManager.Models.SiteProperties properties = null) { throw null; } + public static Azure.ResourceManager.SiteManager.Models.SiteProperties SiteProperties(string displayName = null, string description = null, Azure.Core.ResourceIdentifier addressResourceId = null, Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState? provisioningState = default(Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState?)) { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct ResourceProvisioningState : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public ResourceProvisioningState(string value) { throw null; } + public static Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState Canceled { get { throw null; } } + public static Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState Failed { get { throw null; } } + public static Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState Succeeded { get { throw null; } } + public bool Equals(Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState 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.SiteManager.Models.ResourceProvisioningState left, Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState right) { throw null; } + public static implicit operator Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState left, Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState right) { throw null; } + public override string ToString() { throw null; } + } + public partial class SiteProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public SiteProperties() { } + public Azure.Core.ResourceIdentifier AddressResourceId { get { throw null; } set { } } + public string Description { get { throw null; } set { } } + public string DisplayName { get { throw null; } set { } } + public Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState? ProvisioningState { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.SiteManager.Models.SiteProperties 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.SiteManager.Models.SiteProperties 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 SiteUpdate : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public SiteUpdate() { } + public Azure.ResourceManager.SiteManager.Models.SiteUpdateProperties Properties { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.SiteManager.Models.SiteUpdate 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.SiteManager.Models.SiteUpdate 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 SiteUpdateProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public SiteUpdateProperties() { } + public Azure.Core.ResourceIdentifier AddressResourceId { get { throw null; } set { } } + public string Description { get { throw null; } set { } } + public string DisplayName { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.SiteManager.Models.SiteUpdateProperties 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.SiteManager.Models.SiteUpdateProperties 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/sitemanager/Azure.ResourceManager.SiteManager/api/Azure.ResourceManager.SiteManager.netstandard2.0.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/api/Azure.ResourceManager.SiteManager.netstandard2.0.cs new file mode 100644 index 000000000000..d391e0ac9db6 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/api/Azure.ResourceManager.SiteManager.netstandard2.0.cs @@ -0,0 +1,185 @@ +namespace Azure.ResourceManager.SiteManager +{ + public partial class ResourceGroupSiteCollection : Azure.ResourceManager.ArmCollection, System.Collections.Generic.IAsyncEnumerable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + protected ResourceGroupSiteCollection() { } + public virtual Azure.ResourceManager.ArmOperation CreateOrUpdate(Azure.WaitUntil waitUntil, string siteName, Azure.ResourceManager.SiteManager.SiteData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> CreateOrUpdateAsync(Azure.WaitUntil waitUntil, string siteName, Azure.ResourceManager.SiteManager.SiteData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Exists(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> ExistsAsync(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(string siteName, 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 siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.NullableResponse GetIfExists(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetIfExistsAsync(string siteName, 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 ResourceGroupSiteResource : Azure.ResourceManager.ArmResource, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public static readonly Azure.Core.ResourceType ResourceType; + protected ResourceGroupSiteResource() { } + public virtual Azure.ResourceManager.SiteManager.SiteData Data { get { throw null; } } + public virtual bool HasData { get { throw null; } } + public static Azure.Core.ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string resourceGroupName, string siteName) { 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.SiteManager.SiteData 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.SiteManager.SiteData 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.SiteManager.Models.SiteUpdate properties, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> UpdateAsync(Azure.ResourceManager.SiteManager.Models.SiteUpdate properties, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + } + public partial class SiteData : Azure.ResourceManager.Models.ResourceData, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public SiteData() { } + public Azure.ResourceManager.SiteManager.Models.SiteProperties Properties { get { throw null; } set { } } + protected override void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.SiteManager.SiteData 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.SiteManager.SiteData 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 SiteManagerExtensions + { + public static Azure.Response GetResourceGroupSite(this Azure.ResourceManager.Resources.ResourceGroupResource resourceGroupResource, string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static System.Threading.Tasks.Task> GetResourceGroupSiteAsync(this Azure.ResourceManager.Resources.ResourceGroupResource resourceGroupResource, string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static Azure.ResourceManager.SiteManager.ResourceGroupSiteResource GetResourceGroupSiteResource(this Azure.ResourceManager.ArmClient client, Azure.Core.ResourceIdentifier id) { throw null; } + public static Azure.ResourceManager.SiteManager.ResourceGroupSiteCollection GetResourceGroupSites(this Azure.ResourceManager.Resources.ResourceGroupResource resourceGroupResource) { throw null; } + public static Azure.Response GetSubscriptionSite(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static System.Threading.Tasks.Task> GetSubscriptionSiteAsync(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public static Azure.ResourceManager.SiteManager.SubscriptionSiteResource GetSubscriptionSiteResource(this Azure.ResourceManager.ArmClient client, Azure.Core.ResourceIdentifier id) { throw null; } + public static Azure.ResourceManager.SiteManager.SubscriptionSiteCollection GetSubscriptionSites(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource) { throw null; } + } + public partial class SubscriptionSiteCollection : Azure.ResourceManager.ArmCollection, System.Collections.Generic.IAsyncEnumerable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + protected SubscriptionSiteCollection() { } + public virtual Azure.ResourceManager.ArmOperation CreateOrUpdate(Azure.WaitUntil waitUntil, string siteName, Azure.ResourceManager.SiteManager.SiteData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> CreateOrUpdateAsync(Azure.WaitUntil waitUntil, string siteName, Azure.ResourceManager.SiteManager.SiteData data, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Exists(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> ExistsAsync(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response Get(string siteName, 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 siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.NullableResponse GetIfExists(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetIfExistsAsync(string siteName, 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 SubscriptionSiteResource : Azure.ResourceManager.ArmResource, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public static readonly Azure.Core.ResourceType ResourceType; + protected SubscriptionSiteResource() { } + public virtual Azure.ResourceManager.SiteManager.SiteData Data { get { throw null; } } + public virtual bool HasData { get { throw null; } } + public static Azure.Core.ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string siteName) { 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.SiteManager.SiteData 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.SiteManager.SiteData 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.SiteManager.Models.SiteUpdate properties, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> UpdateAsync(Azure.ResourceManager.SiteManager.Models.SiteUpdate properties, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + } +} +namespace Azure.ResourceManager.SiteManager.Mocking +{ + public partial class MockableSiteManagerArmClient : Azure.ResourceManager.ArmResource + { + protected MockableSiteManagerArmClient() { } + public virtual Azure.ResourceManager.SiteManager.ResourceGroupSiteResource GetResourceGroupSiteResource(Azure.Core.ResourceIdentifier id) { throw null; } + public virtual Azure.ResourceManager.SiteManager.SubscriptionSiteResource GetSubscriptionSiteResource(Azure.Core.ResourceIdentifier id) { throw null; } + } + public partial class MockableSiteManagerResourceGroupResource : Azure.ResourceManager.ArmResource + { + protected MockableSiteManagerResourceGroupResource() { } + public virtual Azure.Response GetResourceGroupSite(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetResourceGroupSiteAsync(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.ResourceManager.SiteManager.ResourceGroupSiteCollection GetResourceGroupSites() { throw null; } + } + public partial class MockableSiteManagerSubscriptionResource : Azure.ResourceManager.ArmResource + { + protected MockableSiteManagerSubscriptionResource() { } + public virtual Azure.Response GetSubscriptionSite(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> GetSubscriptionSiteAsync(string siteName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.ResourceManager.SiteManager.SubscriptionSiteCollection GetSubscriptionSites() { throw null; } + } +} +namespace Azure.ResourceManager.SiteManager.Models +{ + public static partial class ArmSiteManagerModelFactory + { + public static Azure.ResourceManager.SiteManager.SiteData SiteData(Azure.Core.ResourceIdentifier id = null, string name = null, Azure.Core.ResourceType resourceType = default(Azure.Core.ResourceType), Azure.ResourceManager.Models.SystemData systemData = null, Azure.ResourceManager.SiteManager.Models.SiteProperties properties = null) { throw null; } + public static Azure.ResourceManager.SiteManager.Models.SiteProperties SiteProperties(string displayName = null, string description = null, Azure.Core.ResourceIdentifier addressResourceId = null, Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState? provisioningState = default(Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState?)) { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct ResourceProvisioningState : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public ResourceProvisioningState(string value) { throw null; } + public static Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState Canceled { get { throw null; } } + public static Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState Failed { get { throw null; } } + public static Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState Succeeded { get { throw null; } } + public bool Equals(Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState 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.SiteManager.Models.ResourceProvisioningState left, Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState right) { throw null; } + public static implicit operator Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState left, Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState right) { throw null; } + public override string ToString() { throw null; } + } + public partial class SiteProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public SiteProperties() { } + public Azure.Core.ResourceIdentifier AddressResourceId { get { throw null; } set { } } + public string Description { get { throw null; } set { } } + public string DisplayName { get { throw null; } set { } } + public Azure.ResourceManager.SiteManager.Models.ResourceProvisioningState? ProvisioningState { get { throw null; } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.SiteManager.Models.SiteProperties 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.SiteManager.Models.SiteProperties 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 SiteUpdate : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public SiteUpdate() { } + public Azure.ResourceManager.SiteManager.Models.SiteUpdateProperties Properties { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.SiteManager.Models.SiteUpdate 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.SiteManager.Models.SiteUpdate 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 SiteUpdateProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel + { + public SiteUpdateProperties() { } + public Azure.Core.ResourceIdentifier AddressResourceId { get { throw null; } set { } } + public string Description { get { throw null; } set { } } + public string DisplayName { get { throw null; } set { } } + protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } + Azure.ResourceManager.SiteManager.Models.SiteUpdateProperties 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.SiteManager.Models.SiteUpdateProperties 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/sitemanager/Azure.ResourceManager.SiteManager/assets.json b/sdk/sitemanager/Azure.ResourceManager.SiteManager/assets.json new file mode 100644 index 000000000000..fd8ce0868cf6 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/assets.json @@ -0,0 +1,7 @@ + +{ + "AssetsRepo": "Azure/azure-sdk-assets", + "AssetsRepoPrefixPath": "net", + "TagPrefix": "net/sitemanager/Azure.ResourceManager.SiteManager", + "Tag": "" +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/samples/Azure.ResourceManager.SiteManager.Samples.csproj b/sdk/sitemanager/Azure.ResourceManager.SiteManager/samples/Azure.ResourceManager.SiteManager.Samples.csproj new file mode 100644 index 000000000000..ca7b4ed2fcd2 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/samples/Azure.ResourceManager.SiteManager.Samples.csproj @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Azure.ResourceManager.SiteManager.csproj b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Azure.ResourceManager.SiteManager.csproj new file mode 100644 index 000000000000..c8beaaf346a9 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Azure.ResourceManager.SiteManager.csproj @@ -0,0 +1,8 @@ + + + Azure Resource Manager client SDK for Azure resource provider SiteManager. + 1.0.0-beta.1 + azure;management;arm;resource manager;sitemanager + Azure.ResourceManager.SiteManager + + diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ArmSiteManagerModelFactory.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ArmSiteManagerModelFactory.cs new file mode 100644 index 000000000000..4c3fd7407380 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ArmSiteManagerModelFactory.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; +using System.Linq; +using Azure.Core; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.SiteManager.Models +{ + /// Model factory for models. + public static partial class ArmSiteManagerModelFactory + { + /// 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 SiteData SiteData(ResourceIdentifier id = null, string name = null, ResourceType resourceType = default, SystemData systemData = null, SiteProperties properties = null) + { + return new SiteData( + id, + name, + resourceType, + systemData, + properties, + serializedAdditionalRawData: null); + } + + /// Initializes a new instance of . + /// displayName of Site resource. + /// Description of Site resource. + /// AddressResource ArmId of Site resource. + /// Provisioning state of last operation. + /// A new instance for mocking. + public static SiteProperties SiteProperties(string displayName = null, string description = null, ResourceIdentifier addressResourceId = null, ResourceProvisioningState? provisioningState = null) + { + return new SiteProperties(displayName, description, addressResourceId, provisioningState, serializedAdditionalRawData: null); + } + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Extensions/MockableSiteManagerArmClient.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Extensions/MockableSiteManagerArmClient.cs new file mode 100644 index 000000000000..95b0363ade7a --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Extensions/MockableSiteManagerArmClient.cs @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using Azure.Core; + +namespace Azure.ResourceManager.SiteManager.Mocking +{ + /// A class to add extension methods to ArmClient. + public partial class MockableSiteManagerArmClient : ArmResource + { + /// Initializes a new instance of the class for mocking. + protected MockableSiteManagerArmClient() + { + } + + /// 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 MockableSiteManagerArmClient(ArmClient client, ResourceIdentifier id) : base(client, id) + { + } + + internal MockableSiteManagerArmClient(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 ResourceGroupSiteResource GetResourceGroupSiteResource(ResourceIdentifier id) + { + ResourceGroupSiteResource.ValidateResourceId(id); + return new ResourceGroupSiteResource(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 SubscriptionSiteResource GetSubscriptionSiteResource(ResourceIdentifier id) + { + SubscriptionSiteResource.ValidateResourceId(id); + return new SubscriptionSiteResource(Client, id); + } + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Extensions/MockableSiteManagerResourceGroupResource.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Extensions/MockableSiteManagerResourceGroupResource.cs new file mode 100644 index 000000000000..6d5f8ea54c99 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Extensions/MockableSiteManagerResourceGroupResource.cs @@ -0,0 +1,105 @@ +// 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.SiteManager.Mocking +{ + /// A class to add extension methods to ResourceGroupResource. + public partial class MockableSiteManagerResourceGroupResource : ArmResource + { + /// Initializes a new instance of the class for mocking. + protected MockableSiteManagerResourceGroupResource() + { + } + + /// 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 MockableSiteManagerResourceGroupResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + } + + private string GetApiVersionOrNull(ResourceType resourceType) + { + TryGetApiVersion(resourceType, out string apiVersion); + return apiVersion; + } + + /// Gets a collection of ResourceGroupSiteResources in the ResourceGroupResource. + /// An object representing collection of ResourceGroupSiteResources and their operations over a ResourceGroupSiteResource. + public virtual ResourceGroupSiteCollection GetResourceGroupSites() + { + return GetCachedClient(client => new ResourceGroupSiteCollection(client, Id)); + } + + /// + /// Get a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of Site resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetResourceGroupSiteAsync(string siteName, CancellationToken cancellationToken = default) + { + return await GetResourceGroupSites().GetAsync(siteName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of Site resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetResourceGroupSite(string siteName, CancellationToken cancellationToken = default) + { + return GetResourceGroupSites().Get(siteName, cancellationToken); + } + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Extensions/MockableSiteManagerSubscriptionResource.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Extensions/MockableSiteManagerSubscriptionResource.cs new file mode 100644 index 000000000000..9c3d22dc5900 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Extensions/MockableSiteManagerSubscriptionResource.cs @@ -0,0 +1,105 @@ +// 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.SiteManager.Mocking +{ + /// A class to add extension methods to SubscriptionResource. + public partial class MockableSiteManagerSubscriptionResource : ArmResource + { + /// Initializes a new instance of the class for mocking. + protected MockableSiteManagerSubscriptionResource() + { + } + + /// 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 MockableSiteManagerSubscriptionResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + } + + private string GetApiVersionOrNull(ResourceType resourceType) + { + TryGetApiVersion(resourceType, out string apiVersion); + return apiVersion; + } + + /// Gets a collection of SubscriptionSiteResources in the SubscriptionResource. + /// An object representing collection of SubscriptionSiteResources and their operations over a SubscriptionSiteResource. + public virtual SubscriptionSiteCollection GetSubscriptionSites() + { + return GetCachedClient(client => new SubscriptionSiteCollection(client, Id)); + } + + /// + /// Get a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of Site resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetSubscriptionSiteAsync(string siteName, CancellationToken cancellationToken = default) + { + return await GetSubscriptionSites().GetAsync(siteName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of Site resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetSubscriptionSite(string siteName, CancellationToken cancellationToken = default) + { + return GetSubscriptionSites().Get(siteName, cancellationToken); + } + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Extensions/SiteManagerExtensions.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Extensions/SiteManagerExtensions.cs new file mode 100644 index 000000000000..1fccc8c49cac --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Extensions/SiteManagerExtensions.cs @@ -0,0 +1,259 @@ +// 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.Resources; +using Azure.ResourceManager.SiteManager.Mocking; + +namespace Azure.ResourceManager.SiteManager +{ + /// A class to add extension methods to Azure.ResourceManager.SiteManager. + public static partial class SiteManagerExtensions + { + private static MockableSiteManagerArmClient GetMockableSiteManagerArmClient(ArmClient client) + { + return client.GetCachedClient(client0 => new MockableSiteManagerArmClient(client0)); + } + + private static MockableSiteManagerResourceGroupResource GetMockableSiteManagerResourceGroupResource(ArmResource resource) + { + return resource.GetCachedClient(client => new MockableSiteManagerResourceGroupResource(client, resource.Id)); + } + + private static MockableSiteManagerSubscriptionResource GetMockableSiteManagerSubscriptionResource(ArmResource resource) + { + return resource.GetCachedClient(client => new MockableSiteManagerSubscriptionResource(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 ResourceGroupSiteResource GetResourceGroupSiteResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableSiteManagerArmClient(client).GetResourceGroupSiteResource(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 SubscriptionSiteResource GetSubscriptionSiteResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableSiteManagerArmClient(client).GetSubscriptionSiteResource(id); + } + + /// + /// Gets a collection of ResourceGroupSiteResources in the ResourceGroupResource. + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// is null. + /// An object representing collection of ResourceGroupSiteResources and their operations over a ResourceGroupSiteResource. + public static ResourceGroupSiteCollection GetResourceGroupSites(this ResourceGroupResource resourceGroupResource) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return GetMockableSiteManagerResourceGroupResource(resourceGroupResource).GetResourceGroupSites(); + } + + /// + /// Get a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// Name of Site 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> GetResourceGroupSiteAsync(this ResourceGroupResource resourceGroupResource, string siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return await GetMockableSiteManagerResourceGroupResource(resourceGroupResource).GetResourceGroupSiteAsync(siteName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// Name of Site resource. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public static Response GetResourceGroupSite(this ResourceGroupResource resourceGroupResource, string siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return GetMockableSiteManagerResourceGroupResource(resourceGroupResource).GetResourceGroupSite(siteName, cancellationToken); + } + + /// + /// Gets a collection of SubscriptionSiteResources 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 SubscriptionSiteResources and their operations over a SubscriptionSiteResource. + public static SubscriptionSiteCollection GetSubscriptionSites(this SubscriptionResource subscriptionResource) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableSiteManagerSubscriptionResource(subscriptionResource).GetSubscriptionSites(); + } + + /// + /// Get a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// Name of Site 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> GetSubscriptionSiteAsync(this SubscriptionResource subscriptionResource, string siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return await GetMockableSiteManagerSubscriptionResource(subscriptionResource).GetSubscriptionSiteAsync(siteName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Mocking + /// To mock this method, please mock instead. + /// + /// + /// The instance the method will execute against. + /// Name of Site resource. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public static Response GetSubscriptionSite(this SubscriptionResource subscriptionResource, string siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableSiteManagerSubscriptionResource(subscriptionResource).GetSubscriptionSite(siteName, cancellationToken); + } + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/Argument.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/Argument.cs new file mode 100644 index 000000000000..a33cae7b9b4a --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/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.SiteManager +{ + 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/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/ChangeTrackingDictionary.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/ChangeTrackingDictionary.cs new file mode 100644 index 000000000000..d1195c913a7f --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/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.SiteManager +{ + 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/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/ChangeTrackingList.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/ChangeTrackingList.cs new file mode 100644 index 000000000000..d7c37dce15ea --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/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.SiteManager +{ + 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/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/ModelSerializationExtensions.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/ModelSerializationExtensions.cs new file mode 100644 index 000000000000..8b6326c08556 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/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.SiteManager +{ + 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/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/Optional.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/Optional.cs new file mode 100644 index 000000000000..eeaa7c102d82 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/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.SiteManager +{ + 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/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/Utf8JsonRequestContent.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Internal/Utf8JsonRequestContent.cs new file mode 100644 index 000000000000..5c17e9380373 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/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.SiteManager +{ + 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/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/LongRunningOperation/ResourceGroupSiteOperationSource.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/LongRunningOperation/ResourceGroupSiteOperationSource.cs new file mode 100644 index 000000000000..b4621bf5d096 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/LongRunningOperation/ResourceGroupSiteOperationSource.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.SiteManager +{ + internal class ResourceGroupSiteOperationSource : IOperationSource + { + private readonly ArmClient _client; + + internal ResourceGroupSiteOperationSource(ArmClient client) + { + _client = client; + } + + ResourceGroupSiteResource IOperationSource.CreateResult(Response response, CancellationToken cancellationToken) + { + var data = ModelReaderWriter.Read(response.Content); + return new ResourceGroupSiteResource(_client, data); + } + + async ValueTask IOperationSource.CreateResultAsync(Response response, CancellationToken cancellationToken) + { + var data = ModelReaderWriter.Read(response.Content); + return await Task.FromResult(new ResourceGroupSiteResource(_client, data)).ConfigureAwait(false); + } + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/LongRunningOperation/SiteManagerArmOperation.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/LongRunningOperation/SiteManagerArmOperation.cs new file mode 100644 index 000000000000..2cd25b7e0d02 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/LongRunningOperation/SiteManagerArmOperation.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.SiteManager +{ +#pragma warning disable SA1649 // File name should match first type name + internal class SiteManagerArmOperation : 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 SiteManagerArmOperation for mocking. + protected SiteManagerArmOperation() + { + } + + internal SiteManagerArmOperation(Response response, RehydrationToken? rehydrationToken = null) + { + _operation = OperationInternal.Succeeded(response); + _completeRehydrationToken = rehydrationToken; + _operationId = GetOperationId(rehydrationToken); + } + + internal SiteManagerArmOperation(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, "SiteManagerArmOperation", 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/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/LongRunningOperation/SiteManagerArmOperationOfT.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/LongRunningOperation/SiteManagerArmOperationOfT.cs new file mode 100644 index 000000000000..fc904280a722 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/LongRunningOperation/SiteManagerArmOperationOfT.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.SiteManager +{ +#pragma warning disable SA1649 // File name should match first type name + internal class SiteManagerArmOperation : 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 SiteManagerArmOperation for mocking. + protected SiteManagerArmOperation() + { + } + + internal SiteManagerArmOperation(Response response, RehydrationToken? rehydrationToken = null) + { + _operation = OperationInternal.Succeeded(response.GetRawResponse(), response.Value); + _completeRehydrationToken = rehydrationToken; + _operationId = GetOperationId(rehydrationToken); + } + + internal SiteManagerArmOperation(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, "SiteManagerArmOperation", 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/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/LongRunningOperation/SubscriptionSiteOperationSource.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/LongRunningOperation/SubscriptionSiteOperationSource.cs new file mode 100644 index 000000000000..30de7e428a88 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/LongRunningOperation/SubscriptionSiteOperationSource.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.SiteManager +{ + internal class SubscriptionSiteOperationSource : IOperationSource + { + private readonly ArmClient _client; + + internal SubscriptionSiteOperationSource(ArmClient client) + { + _client = client; + } + + SubscriptionSiteResource IOperationSource.CreateResult(Response response, CancellationToken cancellationToken) + { + var data = ModelReaderWriter.Read(response.Content); + return new SubscriptionSiteResource(_client, data); + } + + async ValueTask IOperationSource.CreateResultAsync(Response response, CancellationToken cancellationToken) + { + var data = ModelReaderWriter.Read(response.Content); + return await Task.FromResult(new SubscriptionSiteResource(_client, data)).ConfigureAwait(false); + } + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/ResourceProvisioningState.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/ResourceProvisioningState.cs new file mode 100644 index 000000000000..e99e5b7d2b63 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/ResourceProvisioningState.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.SiteManager.Models +{ + /// The provisioning state of a resource type. + public readonly partial struct ResourceProvisioningState : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public ResourceProvisioningState(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string SucceededValue = "Succeeded"; + private const string FailedValue = "Failed"; + private const string CanceledValue = "Canceled"; + + /// Resource has been created. + public static ResourceProvisioningState Succeeded { get; } = new ResourceProvisioningState(SucceededValue); + /// Resource creation failed. + public static ResourceProvisioningState Failed { get; } = new ResourceProvisioningState(FailedValue); + /// Resource creation was canceled. + public static ResourceProvisioningState Canceled { get; } = new ResourceProvisioningState(CanceledValue); + /// Determines if two values are the same. + public static bool operator ==(ResourceProvisioningState left, ResourceProvisioningState right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(ResourceProvisioningState left, ResourceProvisioningState right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator ResourceProvisioningState(string value) => new ResourceProvisioningState(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ResourceProvisioningState other && Equals(other); + /// + public bool Equals(ResourceProvisioningState 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/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteListResult.Serialization.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteListResult.Serialization.cs new file mode 100644 index 000000000000..d2fe83e6a24a --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteListResult.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.SiteManager.Models +{ + internal partial class SiteListResult : 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(SiteListResult)} 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 + } + } + } + + SiteListResult 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(SiteListResult)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeSiteListResult(document.RootElement, options); + } + + internal static SiteListResult DeserializeSiteListResult(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(SiteData.DeserializeSiteData(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 SiteListResult(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(SiteListResult)} does not support writing '{options.Format}' format."); + } + } + + SiteListResult 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 DeserializeSiteListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(SiteListResult)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteListResult.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteListResult.cs new file mode 100644 index 000000000000..cdd5ac29edcd --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteListResult.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.SiteManager.Models +{ + /// The response of a Site list operation. + internal partial class SiteListResult + { + /// + /// 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 Site items on this page. + /// is null. + internal SiteListResult(IEnumerable value) + { + Argument.AssertNotNull(value, nameof(value)); + + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The Site items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal SiteListResult(IReadOnlyList value, Uri nextLink, IDictionary serializedAdditionalRawData) + { + Value = value; + NextLink = nextLink; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// Initializes a new instance of for deserialization. + internal SiteListResult() + { + } + + /// The Site items on this page. + public IReadOnlyList Value { get; } + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteProperties.Serialization.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteProperties.Serialization.cs new file mode 100644 index 000000000000..65aee1d1f37f --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteProperties.Serialization.cs @@ -0,0 +1,170 @@ +// 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.SiteManager.Models +{ + public partial class SiteProperties : 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(SiteProperties)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(DisplayName)) + { + writer.WritePropertyName("displayName"u8); + writer.WriteStringValue(DisplayName); + } + if (Optional.IsDefined(Description)) + { + writer.WritePropertyName("description"u8); + writer.WriteStringValue(Description); + } + if (Optional.IsDefined(AddressResourceId)) + { + writer.WritePropertyName("addressResourceId"u8); + writer.WriteStringValue(AddressResourceId); + } + if (options.Format != "W" && Optional.IsDefined(ProvisioningState)) + { + writer.WritePropertyName("provisioningState"u8); + writer.WriteStringValue(ProvisioningState.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 + } + } + } + + SiteProperties 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(SiteProperties)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeSiteProperties(document.RootElement, options); + } + + internal static SiteProperties DeserializeSiteProperties(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string displayName = default; + string description = default; + ResourceIdentifier addressResourceId = default; + ResourceProvisioningState? provisioningState = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("displayName"u8)) + { + displayName = property.Value.GetString(); + continue; + } + if (property.NameEquals("description"u8)) + { + description = property.Value.GetString(); + continue; + } + if (property.NameEquals("addressResourceId"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + addressResourceId = new ResourceIdentifier(property.Value.GetString()); + continue; + } + if (property.NameEquals("provisioningState"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + provisioningState = new ResourceProvisioningState(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new SiteProperties(displayName, description, addressResourceId, provisioningState, 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(SiteProperties)} does not support writing '{options.Format}' format."); + } + } + + SiteProperties 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 DeserializeSiteProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(SiteProperties)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteProperties.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteProperties.cs new file mode 100644 index 000000000000..744e4baf8923 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteProperties.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; +using Azure.Core; + +namespace Azure.ResourceManager.SiteManager.Models +{ + /// Site properties. + public partial class SiteProperties + { + /// + /// 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 SiteProperties() + { + } + + /// Initializes a new instance of . + /// displayName of Site resource. + /// Description of Site resource. + /// AddressResource ArmId of Site resource. + /// Provisioning state of last operation. + /// Keeps track of any properties unknown to the library. + internal SiteProperties(string displayName, string description, ResourceIdentifier addressResourceId, ResourceProvisioningState? provisioningState, IDictionary serializedAdditionalRawData) + { + DisplayName = displayName; + Description = description; + AddressResourceId = addressResourceId; + ProvisioningState = provisioningState; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// displayName of Site resource. + public string DisplayName { get; set; } + /// Description of Site resource. + public string Description { get; set; } + /// AddressResource ArmId of Site resource. + public ResourceIdentifier AddressResourceId { get; set; } + /// Provisioning state of last operation. + public ResourceProvisioningState? ProvisioningState { get; } + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteUpdate.Serialization.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteUpdate.Serialization.cs new file mode 100644 index 000000000000..dac0628fdd2f --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteUpdate.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.SiteManager.Models +{ + public partial class SiteUpdate : 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(SiteUpdate)} 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 + } + } + } + + SiteUpdate 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(SiteUpdate)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeSiteUpdate(document.RootElement, options); + } + + internal static SiteUpdate DeserializeSiteUpdate(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + SiteUpdateProperties 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 = SiteUpdateProperties.DeserializeSiteUpdateProperties(property.Value, options); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new SiteUpdate(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(SiteUpdate)} does not support writing '{options.Format}' format."); + } + } + + SiteUpdate 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 DeserializeSiteUpdate(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(SiteUpdate)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteUpdate.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteUpdate.cs new file mode 100644 index 000000000000..ed66baac9fcb --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteUpdate.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.SiteManager.Models +{ + /// The type used for update operations of the Site. + public partial class SiteUpdate + { + /// + /// 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 SiteUpdate() + { + } + + /// Initializes a new instance of . + /// The updatable properties of the Site. + /// Keeps track of any properties unknown to the library. + internal SiteUpdate(SiteUpdateProperties properties, IDictionary serializedAdditionalRawData) + { + Properties = properties; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The updatable properties of the Site. + public SiteUpdateProperties Properties { get; set; } + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteUpdateProperties.Serialization.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteUpdateProperties.Serialization.cs new file mode 100644 index 000000000000..f0d094c1f685 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteUpdateProperties.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; + +namespace Azure.ResourceManager.SiteManager.Models +{ + public partial class SiteUpdateProperties : 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(SiteUpdateProperties)} does not support writing '{format}' format."); + } + + if (Optional.IsDefined(DisplayName)) + { + writer.WritePropertyName("displayName"u8); + writer.WriteStringValue(DisplayName); + } + if (Optional.IsDefined(Description)) + { + writer.WritePropertyName("description"u8); + writer.WriteStringValue(Description); + } + if (Optional.IsDefined(AddressResourceId)) + { + writer.WritePropertyName("addressResourceId"u8); + writer.WriteStringValue(AddressResourceId); + } + 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 + } + } + } + + SiteUpdateProperties 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(SiteUpdateProperties)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeSiteUpdateProperties(document.RootElement, options); + } + + internal static SiteUpdateProperties DeserializeSiteUpdateProperties(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string displayName = default; + string description = default; + ResourceIdentifier addressResourceId = default; + IDictionary serializedAdditionalRawData = default; + Dictionary rawDataDictionary = new Dictionary(); + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("displayName"u8)) + { + displayName = property.Value.GetString(); + continue; + } + if (property.NameEquals("description"u8)) + { + description = property.Value.GetString(); + continue; + } + if (property.NameEquals("addressResourceId"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + addressResourceId = new ResourceIdentifier(property.Value.GetString()); + continue; + } + if (options.Format != "W") + { + rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); + } + } + serializedAdditionalRawData = rawDataDictionary; + return new SiteUpdateProperties(displayName, description, addressResourceId, 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(SiteUpdateProperties)} does not support writing '{options.Format}' format."); + } + } + + SiteUpdateProperties 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 DeserializeSiteUpdateProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(SiteUpdateProperties)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteUpdateProperties.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteUpdateProperties.cs new file mode 100644 index 000000000000..a356c03675a9 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/Models/SiteUpdateProperties.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; + +namespace Azure.ResourceManager.SiteManager.Models +{ + /// The updatable properties of the Site. + public partial class SiteUpdateProperties + { + /// + /// 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 SiteUpdateProperties() + { + } + + /// Initializes a new instance of . + /// displayName of Site resource. + /// Description of Site resource. + /// AddressResource ArmId of Site resource. + /// Keeps track of any properties unknown to the library. + internal SiteUpdateProperties(string displayName, string description, ResourceIdentifier addressResourceId, IDictionary serializedAdditionalRawData) + { + DisplayName = displayName; + Description = description; + AddressResourceId = addressResourceId; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// displayName of Site resource. + public string DisplayName { get; set; } + /// Description of Site resource. + public string Description { get; set; } + /// AddressResource ArmId of Site resource. + public ResourceIdentifier AddressResourceId { get; set; } + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ProviderConstants.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ProviderConstants.cs new file mode 100644 index 000000000000..ac5d9bb23fcf --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/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.SiteManager +{ + internal static class ProviderConstants + { + public static string DefaultProviderNamespace { get; } = ClientDiagnostics.GetResourceProviderNamespace(typeof(ProviderConstants).Assembly); + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ResourceGroupSiteCollection.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ResourceGroupSiteCollection.cs new file mode 100644 index 000000000000..a548e85411f8 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ResourceGroupSiteCollection.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.SiteManager +{ + /// + /// 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 GetResourceGroupSites method from an instance of . + /// + public partial class ResourceGroupSiteCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _resourceGroupSiteSitesClientDiagnostics; + private readonly SitesRestOperations _resourceGroupSiteSitesRestClient; + + /// Initializes a new instance of the class for mocking. + protected ResourceGroupSiteCollection() + { + } + + /// 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 ResourceGroupSiteCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + _resourceGroupSiteSitesClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.SiteManager", ResourceGroupSiteResource.ResourceType.Namespace, Diagnostics); + TryGetApiVersion(ResourceGroupSiteResource.ResourceType, out string resourceGroupSiteSitesApiVersion); + _resourceGroupSiteSitesRestClient = new SitesRestOperations(Pipeline, Diagnostics.ApplicationId, Endpoint, resourceGroupSiteSitesApiVersion); +#if DEBUG + ValidateResourceId(Id); +#endif + } + + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceGroupResource.ResourceType) + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "Invalid resource type {0} expected {1}", id.ResourceType, ResourceGroupResource.ResourceType), nameof(id)); + } + + /// + /// Create a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_CreateOrUpdate + /// + /// + /// Default Api Version + /// 2024-02-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 Site 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 siteName, SiteData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + Argument.AssertNotNull(data, nameof(data)); + + using var scope = _resourceGroupSiteSitesClientDiagnostics.CreateScope("ResourceGroupSiteCollection.CreateOrUpdate"); + scope.Start(); + try + { + var response = await _resourceGroupSiteSitesRestClient.CreateOrUpdateAsync(Id.SubscriptionId, Id.ResourceGroupName, siteName, data, cancellationToken).ConfigureAwait(false); + var operation = new SiteManagerArmOperation(new ResourceGroupSiteOperationSource(Client), _resourceGroupSiteSitesClientDiagnostics, Pipeline, _resourceGroupSiteSitesRestClient.CreateCreateOrUpdateRequest(Id.SubscriptionId, Id.ResourceGroupName, siteName, 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 Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_CreateOrUpdate + /// + /// + /// Default Api Version + /// 2024-02-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 Site 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 siteName, SiteData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + Argument.AssertNotNull(data, nameof(data)); + + using var scope = _resourceGroupSiteSitesClientDiagnostics.CreateScope("ResourceGroupSiteCollection.CreateOrUpdate"); + scope.Start(); + try + { + var response = _resourceGroupSiteSitesRestClient.CreateOrUpdate(Id.SubscriptionId, Id.ResourceGroupName, siteName, data, cancellationToken); + var operation = new SiteManagerArmOperation(new ResourceGroupSiteOperationSource(Client), _resourceGroupSiteSitesClientDiagnostics, Pipeline, _resourceGroupSiteSitesRestClient.CreateCreateOrUpdateRequest(Id.SubscriptionId, Id.ResourceGroupName, siteName, data).Request, response, OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + operation.WaitForCompletion(cancellationToken); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of Site 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 siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var scope = _resourceGroupSiteSitesClientDiagnostics.CreateScope("ResourceGroupSiteCollection.Get"); + scope.Start(); + try + { + var response = await _resourceGroupSiteSitesRestClient.GetAsync(Id.SubscriptionId, Id.ResourceGroupName, siteName, cancellationToken).ConfigureAwait(false); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new ResourceGroupSiteResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of Site resource. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual Response Get(string siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var scope = _resourceGroupSiteSitesClientDiagnostics.CreateScope("ResourceGroupSiteCollection.Get"); + scope.Start(); + try + { + var response = _resourceGroupSiteSitesRestClient.Get(Id.SubscriptionId, Id.ResourceGroupName, siteName, cancellationToken); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new ResourceGroupSiteResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// List Site resources by resource group + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites + /// + /// + /// Operation Id + /// Site_ListByResourceGroup + /// + /// + /// Default Api Version + /// 2024-02-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) => _resourceGroupSiteSitesRestClient.CreateListByResourceGroupRequest(Id.SubscriptionId, Id.ResourceGroupName); + HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => _resourceGroupSiteSitesRestClient.CreateListByResourceGroupNextPageRequest(nextLink, Id.SubscriptionId, Id.ResourceGroupName); + return GeneratorPageableHelpers.CreateAsyncPageable(FirstPageRequest, NextPageRequest, e => new ResourceGroupSiteResource(Client, SiteData.DeserializeSiteData(e)), _resourceGroupSiteSitesClientDiagnostics, Pipeline, "ResourceGroupSiteCollection.GetAll", "value", "nextLink", cancellationToken); + } + + /// + /// List Site resources by resource group + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites + /// + /// + /// Operation Id + /// Site_ListByResourceGroup + /// + /// + /// Default Api Version + /// 2024-02-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) => _resourceGroupSiteSitesRestClient.CreateListByResourceGroupRequest(Id.SubscriptionId, Id.ResourceGroupName); + HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => _resourceGroupSiteSitesRestClient.CreateListByResourceGroupNextPageRequest(nextLink, Id.SubscriptionId, Id.ResourceGroupName); + return GeneratorPageableHelpers.CreatePageable(FirstPageRequest, NextPageRequest, e => new ResourceGroupSiteResource(Client, SiteData.DeserializeSiteData(e)), _resourceGroupSiteSitesClientDiagnostics, Pipeline, "ResourceGroupSiteCollection.GetAll", "value", "nextLink", cancellationToken); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of Site 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 siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var scope = _resourceGroupSiteSitesClientDiagnostics.CreateScope("ResourceGroupSiteCollection.Exists"); + scope.Start(); + try + { + var response = await _resourceGroupSiteSitesRestClient.GetAsync(Id.SubscriptionId, Id.ResourceGroupName, siteName, 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}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of Site resource. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual Response Exists(string siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var scope = _resourceGroupSiteSitesClientDiagnostics.CreateScope("ResourceGroupSiteCollection.Exists"); + scope.Start(); + try + { + var response = _resourceGroupSiteSitesRestClient.Get(Id.SubscriptionId, Id.ResourceGroupName, siteName, 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}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of Site 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 siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var scope = _resourceGroupSiteSitesClientDiagnostics.CreateScope("ResourceGroupSiteCollection.GetIfExists"); + scope.Start(); + try + { + var response = await _resourceGroupSiteSitesRestClient.GetAsync(Id.SubscriptionId, Id.ResourceGroupName, siteName, cancellationToken: cancellationToken).ConfigureAwait(false); + if (response.Value == null) + return new NoValueResponse(response.GetRawResponse()); + return Response.FromValue(new ResourceGroupSiteResource(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}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of Site resource. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual NullableResponse GetIfExists(string siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var scope = _resourceGroupSiteSitesClientDiagnostics.CreateScope("ResourceGroupSiteCollection.GetIfExists"); + scope.Start(); + try + { + var response = _resourceGroupSiteSitesRestClient.Get(Id.SubscriptionId, Id.ResourceGroupName, siteName, cancellationToken: cancellationToken); + if (response.Value == null) + return new NoValueResponse(response.GetRawResponse()); + return Response.FromValue(new ResourceGroupSiteResource(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/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ResourceGroupSiteResource.Serialization.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ResourceGroupSiteResource.Serialization.cs new file mode 100644 index 000000000000..65f3282ddd71 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ResourceGroupSiteResource.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.SiteManager +{ + public partial class ResourceGroupSiteResource : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + SiteData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => ((IJsonModel)Data).Create(ref reader, options); + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options); + + SiteData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options); + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => ((IPersistableModel)Data).GetFormatFromOptions(options); + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ResourceGroupSiteResource.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ResourceGroupSiteResource.cs new file mode 100644 index 000000000000..23f443292d04 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/ResourceGroupSiteResource.cs @@ -0,0 +1,344 @@ +// 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; +using Azure.ResourceManager.SiteManager.Models; + +namespace Azure.ResourceManager.SiteManager +{ + /// + /// A Class representing a ResourceGroupSite 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 GetResourceGroupSiteResource method. + /// Otherwise you can get one from its parent resource using the GetResourceGroupSite method. + /// + public partial class ResourceGroupSiteResource : ArmResource + { + /// Generate the resource identifier of a instance. + /// The subscriptionId. + /// The resourceGroupName. + /// The siteName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string resourceGroupName, string siteName) + { + var resourceId = $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName}"; + return new ResourceIdentifier(resourceId); + } + + private readonly ClientDiagnostics _resourceGroupSiteSitesClientDiagnostics; + private readonly SitesRestOperations _resourceGroupSiteSitesRestClient; + private readonly SiteData _data; + + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Edge/sites"; + + /// Initializes a new instance of the class for mocking. + protected ResourceGroupSiteResource() + { + } + + /// Initializes a new instance of the class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal ResourceGroupSiteResource(ArmClient client, SiteData 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 ResourceGroupSiteResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + _resourceGroupSiteSitesClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.SiteManager", ResourceType.Namespace, Diagnostics); + TryGetApiVersion(ResourceType, out string resourceGroupSiteSitesApiVersion); + _resourceGroupSiteSitesRestClient = new SitesRestOperations(Pipeline, Diagnostics.ApplicationId, Endpoint, resourceGroupSiteSitesApiVersion); +#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 SiteData 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 Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using var scope = _resourceGroupSiteSitesClientDiagnostics.CreateScope("ResourceGroupSiteResource.Get"); + scope.Start(); + try + { + var response = await _resourceGroupSiteSitesRestClient.GetAsync(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, cancellationToken).ConfigureAwait(false); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new ResourceGroupSiteResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using var scope = _resourceGroupSiteSitesClientDiagnostics.CreateScope("ResourceGroupSiteResource.Get"); + scope.Start(); + try + { + var response = _resourceGroupSiteSitesRestClient.Get(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, cancellationToken); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new ResourceGroupSiteResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Delete + /// + /// + /// Default Api Version + /// 2024-02-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 = _resourceGroupSiteSitesClientDiagnostics.CreateScope("ResourceGroupSiteResource.Delete"); + scope.Start(); + try + { + var response = await _resourceGroupSiteSitesRestClient.DeleteAsync(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, cancellationToken).ConfigureAwait(false); + var uri = _resourceGroupSiteSitesRestClient.CreateDeleteRequestUri(Id.SubscriptionId, Id.ResourceGroupName, Id.Name); + var rehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(RequestMethod.Delete, uri.ToUri(), uri.ToString(), "None", null, OperationFinalStateVia.OriginalUri.ToString()); + var operation = new SiteManagerArmOperation(response, rehydrationToken); + if (waitUntil == WaitUntil.Completed) + await operation.WaitForCompletionResponseAsync(cancellationToken).ConfigureAwait(false); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Delete + /// + /// + /// Default Api Version + /// 2024-02-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 = _resourceGroupSiteSitesClientDiagnostics.CreateScope("ResourceGroupSiteResource.Delete"); + scope.Start(); + try + { + var response = _resourceGroupSiteSitesRestClient.Delete(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, cancellationToken); + var uri = _resourceGroupSiteSitesRestClient.CreateDeleteRequestUri(Id.SubscriptionId, Id.ResourceGroupName, Id.Name); + var rehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(RequestMethod.Delete, uri.ToUri(), uri.ToString(), "None", null, OperationFinalStateVia.OriginalUri.ToString()); + var operation = new SiteManagerArmOperation(response, rehydrationToken); + if (waitUntil == WaitUntil.Completed) + operation.WaitForCompletionResponse(cancellationToken); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Update + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual async Task> UpdateAsync(SiteUpdate properties, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(properties, nameof(properties)); + + using var scope = _resourceGroupSiteSitesClientDiagnostics.CreateScope("ResourceGroupSiteResource.Update"); + scope.Start(); + try + { + var response = await _resourceGroupSiteSitesRestClient.UpdateAsync(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, properties, cancellationToken).ConfigureAwait(false); + return Response.FromValue(new ResourceGroupSiteResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Update + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual Response Update(SiteUpdate properties, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(properties, nameof(properties)); + + using var scope = _resourceGroupSiteSitesClientDiagnostics.CreateScope("ResourceGroupSiteResource.Update"); + scope.Start(); + try + { + var response = _resourceGroupSiteSitesRestClient.Update(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, properties, cancellationToken); + return Response.FromValue(new ResourceGroupSiteResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/RestOperations/SitesBySubscriptionRestOperations.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/RestOperations/SitesBySubscriptionRestOperations.cs new file mode 100644 index 000000000000..b5e94332f361 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/RestOperations/SitesBySubscriptionRestOperations.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.SiteManager.Models; + +namespace Azure.ResourceManager.SiteManager +{ + internal partial class SitesBySubscriptionRestOperations + { + private readonly TelemetryDetails _userAgent; + private readonly HttpPipeline _pipeline; + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of SitesBySubscriptionRestOperations. + /// 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 SitesBySubscriptionRestOperations(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-02-01-preview"; + _userAgent = new TelemetryDetails(GetType().Assembly, applicationId); + } + + internal RequestUriBuilder CreateListRequestUri(string subscriptionId) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Edge/sites", false); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateListRequest(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.Edge/sites", false); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// List Site 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> ListAsync(string subscriptionId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + + using var message = CreateListRequest(subscriptionId); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + SiteListResult value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = SiteListResult.DeserializeSiteListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + /// List Site 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 List(string subscriptionId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + + using var message = CreateListRequest(subscriptionId); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + SiteListResult value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = SiteListResult.DeserializeSiteListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateGetRequestUri(string subscriptionId, string siteName) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Edge/sites/", false); + uri.AppendPath(siteName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateGetRequest(string subscriptionId, string siteName) + { + 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.Edge/sites/", false); + uri.AppendPath(siteName, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// Get a Site. + /// The ID of the target subscription. The value must be an UUID. + /// Name of Site 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 siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var message = CreateGetRequest(subscriptionId, siteName); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + SiteData value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = SiteData.DeserializeSiteData(document.RootElement); + return Response.FromValue(value, message.Response); + } + case 404: + return Response.FromValue((SiteData)null, message.Response); + default: + throw new RequestFailedException(message.Response); + } + } + + /// Get a Site. + /// The ID of the target subscription. The value must be an UUID. + /// Name of Site 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 siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var message = CreateGetRequest(subscriptionId, siteName); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + SiteData value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = SiteData.DeserializeSiteData(document.RootElement); + return Response.FromValue(value, message.Response); + } + case 404: + return Response.FromValue((SiteData)null, message.Response); + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateCreateOrUpdateRequestUri(string subscriptionId, string siteName, SiteData data) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Edge/sites/", false); + uri.AppendPath(siteName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateCreateOrUpdateRequest(string subscriptionId, string siteName, SiteData 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.Edge/sites/", false); + uri.AppendPath(siteName, 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 Site. + /// The ID of the target subscription. The value must be an UUID. + /// Name of Site 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 CreateOrUpdateAsync(string subscriptionId, string siteName, SiteData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + Argument.AssertNotNull(data, nameof(data)); + + using var message = CreateCreateOrUpdateRequest(subscriptionId, siteName, 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 Site. + /// The ID of the target subscription. The value must be an UUID. + /// Name of Site 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 CreateOrUpdate(string subscriptionId, string siteName, SiteData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + Argument.AssertNotNull(data, nameof(data)); + + using var message = CreateCreateOrUpdateRequest(subscriptionId, siteName, 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 siteName, SiteUpdate properties) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Edge/sites/", false); + uri.AppendPath(siteName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateUpdateRequest(string subscriptionId, string siteName, SiteUpdate properties) + { + 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.Edge/sites/", false); + uri.AppendPath(siteName, 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(properties, ModelSerializationExtensions.WireOptions); + request.Content = content; + _userAgent.Apply(message); + return message; + } + + /// Update a Site. + /// The ID of the target subscription. The value must be an UUID. + /// Name of Site resource. + /// 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 siteName, SiteUpdate properties, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + Argument.AssertNotNull(properties, nameof(properties)); + + using var message = CreateUpdateRequest(subscriptionId, siteName, properties); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + SiteData value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = SiteData.DeserializeSiteData(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + /// Update a Site. + /// The ID of the target subscription. The value must be an UUID. + /// Name of Site resource. + /// 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 siteName, SiteUpdate properties, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + Argument.AssertNotNull(properties, nameof(properties)); + + using var message = CreateUpdateRequest(subscriptionId, siteName, properties); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + SiteData value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = SiteData.DeserializeSiteData(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateDeleteRequestUri(string subscriptionId, string siteName) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/providers/Microsoft.Edge/sites/", false); + uri.AppendPath(siteName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateDeleteRequest(string subscriptionId, string siteName) + { + 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.Edge/sites/", false); + uri.AppendPath(siteName, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// Delete a Site. + /// The ID of the target subscription. The value must be an UUID. + /// Name of Site 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 siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var message = CreateDeleteRequest(subscriptionId, siteName); + 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 Site. + /// The ID of the target subscription. The value must be an UUID. + /// Name of Site 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 siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var message = CreateDeleteRequest(subscriptionId, siteName); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + case 204: + return message.Response; + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateListNextPageRequestUri(string nextLink, string subscriptionId) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendRawNextLink(nextLink, false); + return uri; + } + + internal HttpMessage CreateListNextPageRequest(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 Site 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> ListNextPageAsync(string nextLink, string subscriptionId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(nextLink, nameof(nextLink)); + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + + using var message = CreateListNextPageRequest(nextLink, subscriptionId); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + SiteListResult value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = SiteListResult.DeserializeSiteListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + /// List Site 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 ListNextPage(string nextLink, string subscriptionId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(nextLink, nameof(nextLink)); + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + + using var message = CreateListNextPageRequest(nextLink, subscriptionId); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + SiteListResult value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = SiteListResult.DeserializeSiteListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/RestOperations/SitesRestOperations.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/RestOperations/SitesRestOperations.cs new file mode 100644 index 000000000000..5e5d78d744a4 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/RestOperations/SitesRestOperations.cs @@ -0,0 +1,577 @@ +// 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.SiteManager.Models; + +namespace Azure.ResourceManager.SiteManager +{ + internal partial class SitesRestOperations + { + private readonly TelemetryDetails _userAgent; + private readonly HttpPipeline _pipeline; + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of SitesRestOperations. + /// 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 SitesRestOperations(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-02-01-preview"; + _userAgent = new TelemetryDetails(GetType().Assembly, applicationId); + } + + internal RequestUriBuilder CreateGetRequestUri(string subscriptionId, string resourceGroupName, string siteName) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Edge/sites/", false); + uri.AppendPath(siteName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateGetRequest(string subscriptionId, string resourceGroupName, string siteName) + { + 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("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Edge/sites/", false); + uri.AppendPath(siteName, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// Get a Site. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// Name of Site 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 resourceGroupName, string siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(resourceGroupName, nameof(resourceGroupName)); + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var message = CreateGetRequest(subscriptionId, resourceGroupName, siteName); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + SiteData value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = SiteData.DeserializeSiteData(document.RootElement); + return Response.FromValue(value, message.Response); + } + case 404: + return Response.FromValue((SiteData)null, message.Response); + default: + throw new RequestFailedException(message.Response); + } + } + + /// Get a Site. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// Name of Site 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 resourceGroupName, string siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(resourceGroupName, nameof(resourceGroupName)); + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var message = CreateGetRequest(subscriptionId, resourceGroupName, siteName); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + SiteData value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = SiteData.DeserializeSiteData(document.RootElement); + return Response.FromValue(value, message.Response); + } + case 404: + return Response.FromValue((SiteData)null, message.Response); + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateCreateOrUpdateRequestUri(string subscriptionId, string resourceGroupName, string siteName, SiteData data) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Edge/sites/", false); + uri.AppendPath(siteName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateCreateOrUpdateRequest(string subscriptionId, string resourceGroupName, string siteName, SiteData 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("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Edge/sites/", false); + uri.AppendPath(siteName, 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 Site. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// Name of Site 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 CreateOrUpdateAsync(string subscriptionId, string resourceGroupName, string siteName, SiteData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(resourceGroupName, nameof(resourceGroupName)); + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + Argument.AssertNotNull(data, nameof(data)); + + using var message = CreateCreateOrUpdateRequest(subscriptionId, resourceGroupName, siteName, 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 Site. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// Name of Site 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 CreateOrUpdate(string subscriptionId, string resourceGroupName, string siteName, SiteData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(resourceGroupName, nameof(resourceGroupName)); + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + Argument.AssertNotNull(data, nameof(data)); + + using var message = CreateCreateOrUpdateRequest(subscriptionId, resourceGroupName, siteName, 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 resourceGroupName, string siteName, SiteUpdate properties) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Edge/sites/", false); + uri.AppendPath(siteName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateUpdateRequest(string subscriptionId, string resourceGroupName, string siteName, SiteUpdate properties) + { + 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("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Edge/sites/", false); + uri.AppendPath(siteName, 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(properties, ModelSerializationExtensions.WireOptions); + request.Content = content; + _userAgent.Apply(message); + return message; + } + + /// Update a Site. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// Name of Site resource. + /// 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 resourceGroupName, string siteName, SiteUpdate properties, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(resourceGroupName, nameof(resourceGroupName)); + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + Argument.AssertNotNull(properties, nameof(properties)); + + using var message = CreateUpdateRequest(subscriptionId, resourceGroupName, siteName, properties); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + SiteData value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = SiteData.DeserializeSiteData(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + /// Update a Site. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// Name of Site resource. + /// 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 resourceGroupName, string siteName, SiteUpdate properties, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(resourceGroupName, nameof(resourceGroupName)); + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + Argument.AssertNotNull(properties, nameof(properties)); + + using var message = CreateUpdateRequest(subscriptionId, resourceGroupName, siteName, properties); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + SiteData value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = SiteData.DeserializeSiteData(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateDeleteRequestUri(string subscriptionId, string resourceGroupName, string siteName) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Edge/sites/", false); + uri.AppendPath(siteName, true); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateDeleteRequest(string subscriptionId, string resourceGroupName, string siteName) + { + 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("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Edge/sites/", false); + uri.AppendPath(siteName, true); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// Delete a Site. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// Name of Site 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 resourceGroupName, string siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(resourceGroupName, nameof(resourceGroupName)); + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var message = CreateDeleteRequest(subscriptionId, resourceGroupName, siteName); + 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 Site. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// Name of Site 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 resourceGroupName, string siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(resourceGroupName, nameof(resourceGroupName)); + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var message = CreateDeleteRequest(subscriptionId, resourceGroupName, siteName); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + case 204: + return message.Response; + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateListByResourceGroupRequestUri(string subscriptionId, string resourceGroupName) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId, true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Edge/sites", false); + uri.AppendQuery("api-version", _apiVersion, true); + return uri; + } + + internal HttpMessage CreateListByResourceGroupRequest(string subscriptionId, string resourceGroupName) + { + 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("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Edge/sites", false); + uri.AppendQuery("api-version", _apiVersion, true); + request.Uri = uri; + request.Headers.Add("Accept", "application/json"); + _userAgent.Apply(message); + return message; + } + + /// List Site resources by resource group. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public async Task> ListByResourceGroupAsync(string subscriptionId, string resourceGroupName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(resourceGroupName, nameof(resourceGroupName)); + + using var message = CreateListByResourceGroupRequest(subscriptionId, resourceGroupName); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + SiteListResult value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = SiteListResult.DeserializeSiteListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + /// List Site resources by resource group. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The cancellation token to use. + /// or is null. + /// or is an empty string, and was expected to be non-empty. + public Response ListByResourceGroup(string subscriptionId, string resourceGroupName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(resourceGroupName, nameof(resourceGroupName)); + + using var message = CreateListByResourceGroupRequest(subscriptionId, resourceGroupName); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + SiteListResult value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = SiteListResult.DeserializeSiteListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + internal RequestUriBuilder CreateListByResourceGroupNextPageRequestUri(string nextLink, string subscriptionId, string resourceGroupName) + { + var uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendRawNextLink(nextLink, false); + return uri; + } + + internal HttpMessage CreateListByResourceGroupNextPageRequest(string nextLink, string subscriptionId, string resourceGroupName) + { + 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 Site resources by resource group. + /// The URL to the next page of results. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + public async Task> ListByResourceGroupNextPageAsync(string nextLink, string subscriptionId, string resourceGroupName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(nextLink, nameof(nextLink)); + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(resourceGroupName, nameof(resourceGroupName)); + + using var message = CreateListByResourceGroupNextPageRequest(nextLink, subscriptionId, resourceGroupName); + await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); + switch (message.Response.Status) + { + case 200: + { + SiteListResult value = default; + using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions, cancellationToken).ConfigureAwait(false); + value = SiteListResult.DeserializeSiteListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + + /// List Site resources by resource group. + /// The URL to the next page of results. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The cancellation token to use. + /// , or is null. + /// or is an empty string, and was expected to be non-empty. + public Response ListByResourceGroupNextPage(string nextLink, string subscriptionId, string resourceGroupName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(nextLink, nameof(nextLink)); + Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); + Argument.AssertNotNullOrEmpty(resourceGroupName, nameof(resourceGroupName)); + + using var message = CreateListByResourceGroupNextPageRequest(nextLink, subscriptionId, resourceGroupName); + _pipeline.Send(message, cancellationToken); + switch (message.Response.Status) + { + case 200: + { + SiteListResult value = default; + using var document = JsonDocument.Parse(message.Response.ContentStream, ModelSerializationExtensions.JsonDocumentOptions); + value = SiteListResult.DeserializeSiteListResult(document.RootElement); + return Response.FromValue(value, message.Response); + } + default: + throw new RequestFailedException(message.Response); + } + } + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SiteData.Serialization.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SiteData.Serialization.cs new file mode 100644 index 000000000000..a7d463851997 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SiteData.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.Models; +using Azure.ResourceManager.SiteManager.Models; + +namespace Azure.ResourceManager.SiteManager +{ + public partial class SiteData : 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(SiteData)} does not support writing '{format}' format."); + } + + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + SiteData 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(SiteData)} does not support reading '{format}' format."); + } + + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeSiteData(document.RootElement, options); + } + + internal static SiteData DeserializeSiteData(JsonElement element, ModelReaderWriterOptions options = null) + { + options ??= ModelSerializationExtensions.WireOptions; + + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + SiteProperties 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 = SiteProperties.DeserializeSiteProperties(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 SiteData( + 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(SiteData)} does not support writing '{options.Format}' format."); + } + } + + SiteData 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 DeserializeSiteData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(SiteData)} does not support reading '{options.Format}' format."); + } + } + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SiteData.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SiteData.cs new file mode 100644 index 000000000000..a8eeede0bd0c --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SiteData.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.Models; +using Azure.ResourceManager.SiteManager.Models; + +namespace Azure.ResourceManager.SiteManager +{ + /// + /// A class representing the Site data model. + /// Site as ARM Resource + /// + public partial class SiteData : 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 SiteData() + { + } + + /// 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 SiteData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, SiteProperties properties, IDictionary serializedAdditionalRawData) : base(id, name, resourceType, systemData) + { + Properties = properties; + _serializedAdditionalRawData = serializedAdditionalRawData; + } + + /// The resource-specific properties for this resource. + public SiteProperties Properties { get; set; } + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SubscriptionSiteCollection.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SubscriptionSiteCollection.cs new file mode 100644 index 000000000000..ff0fafd47b88 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SubscriptionSiteCollection.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.SiteManager +{ + /// + /// 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 GetSubscriptionSites method from an instance of . + /// + public partial class SubscriptionSiteCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _subscriptionSiteSitesBySubscriptionClientDiagnostics; + private readonly SitesBySubscriptionRestOperations _subscriptionSiteSitesBySubscriptionRestClient; + + /// Initializes a new instance of the class for mocking. + protected SubscriptionSiteCollection() + { + } + + /// 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 SubscriptionSiteCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + _subscriptionSiteSitesBySubscriptionClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.SiteManager", SubscriptionSiteResource.ResourceType.Namespace, Diagnostics); + TryGetApiVersion(SubscriptionSiteResource.ResourceType, out string subscriptionSiteSitesBySubscriptionApiVersion); + _subscriptionSiteSitesBySubscriptionRestClient = new SitesBySubscriptionRestOperations(Pipeline, Diagnostics.ApplicationId, Endpoint, subscriptionSiteSitesBySubscriptionApiVersion); +#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 Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_CreateOrUpdate + /// + /// + /// Default Api Version + /// 2024-02-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 Site 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 siteName, SiteData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + Argument.AssertNotNull(data, nameof(data)); + + using var scope = _subscriptionSiteSitesBySubscriptionClientDiagnostics.CreateScope("SubscriptionSiteCollection.CreateOrUpdate"); + scope.Start(); + try + { + var response = await _subscriptionSiteSitesBySubscriptionRestClient.CreateOrUpdateAsync(Id.SubscriptionId, siteName, data, cancellationToken).ConfigureAwait(false); + var operation = new SiteManagerArmOperation(new SubscriptionSiteOperationSource(Client), _subscriptionSiteSitesBySubscriptionClientDiagnostics, Pipeline, _subscriptionSiteSitesBySubscriptionRestClient.CreateCreateOrUpdateRequest(Id.SubscriptionId, siteName, 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 Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_CreateOrUpdate + /// + /// + /// Default Api Version + /// 2024-02-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 Site 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 siteName, SiteData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + Argument.AssertNotNull(data, nameof(data)); + + using var scope = _subscriptionSiteSitesBySubscriptionClientDiagnostics.CreateScope("SubscriptionSiteCollection.CreateOrUpdate"); + scope.Start(); + try + { + var response = _subscriptionSiteSitesBySubscriptionRestClient.CreateOrUpdate(Id.SubscriptionId, siteName, data, cancellationToken); + var operation = new SiteManagerArmOperation(new SubscriptionSiteOperationSource(Client), _subscriptionSiteSitesBySubscriptionClientDiagnostics, Pipeline, _subscriptionSiteSitesBySubscriptionRestClient.CreateCreateOrUpdateRequest(Id.SubscriptionId, siteName, data).Request, response, OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + operation.WaitForCompletion(cancellationToken); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of Site 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 siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var scope = _subscriptionSiteSitesBySubscriptionClientDiagnostics.CreateScope("SubscriptionSiteCollection.Get"); + scope.Start(); + try + { + var response = await _subscriptionSiteSitesBySubscriptionRestClient.GetAsync(Id.SubscriptionId, siteName, cancellationToken).ConfigureAwait(false); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new SubscriptionSiteResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of Site resource. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual Response Get(string siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var scope = _subscriptionSiteSitesBySubscriptionClientDiagnostics.CreateScope("SubscriptionSiteCollection.Get"); + scope.Start(); + try + { + var response = _subscriptionSiteSitesBySubscriptionRestClient.Get(Id.SubscriptionId, siteName, cancellationToken); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new SubscriptionSiteResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// List Site resources by subscription ID + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites + /// + /// + /// Operation Id + /// Site_List + /// + /// + /// Default Api Version + /// 2024-02-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) => _subscriptionSiteSitesBySubscriptionRestClient.CreateListRequest(Id.SubscriptionId); + HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => _subscriptionSiteSitesBySubscriptionRestClient.CreateListNextPageRequest(nextLink, Id.SubscriptionId); + return GeneratorPageableHelpers.CreateAsyncPageable(FirstPageRequest, NextPageRequest, e => new SubscriptionSiteResource(Client, SiteData.DeserializeSiteData(e)), _subscriptionSiteSitesBySubscriptionClientDiagnostics, Pipeline, "SubscriptionSiteCollection.GetAll", "value", "nextLink", cancellationToken); + } + + /// + /// List Site resources by subscription ID + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites + /// + /// + /// Operation Id + /// Site_List + /// + /// + /// Default Api Version + /// 2024-02-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) => _subscriptionSiteSitesBySubscriptionRestClient.CreateListRequest(Id.SubscriptionId); + HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => _subscriptionSiteSitesBySubscriptionRestClient.CreateListNextPageRequest(nextLink, Id.SubscriptionId); + return GeneratorPageableHelpers.CreatePageable(FirstPageRequest, NextPageRequest, e => new SubscriptionSiteResource(Client, SiteData.DeserializeSiteData(e)), _subscriptionSiteSitesBySubscriptionClientDiagnostics, Pipeline, "SubscriptionSiteCollection.GetAll", "value", "nextLink", cancellationToken); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of Site 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 siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var scope = _subscriptionSiteSitesBySubscriptionClientDiagnostics.CreateScope("SubscriptionSiteCollection.Exists"); + scope.Start(); + try + { + var response = await _subscriptionSiteSitesBySubscriptionRestClient.GetAsync(Id.SubscriptionId, siteName, 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.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of Site resource. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual Response Exists(string siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var scope = _subscriptionSiteSitesBySubscriptionClientDiagnostics.CreateScope("SubscriptionSiteCollection.Exists"); + scope.Start(); + try + { + var response = _subscriptionSiteSitesBySubscriptionRestClient.Get(Id.SubscriptionId, siteName, 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.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of Site 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 siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var scope = _subscriptionSiteSitesBySubscriptionClientDiagnostics.CreateScope("SubscriptionSiteCollection.GetIfExists"); + scope.Start(); + try + { + var response = await _subscriptionSiteSitesBySubscriptionRestClient.GetAsync(Id.SubscriptionId, siteName, cancellationToken: cancellationToken).ConfigureAwait(false); + if (response.Value == null) + return new NoValueResponse(response.GetRawResponse()); + return Response.FromValue(new SubscriptionSiteResource(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.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// Name of Site resource. + /// The cancellation token to use. + /// is an empty string, and was expected to be non-empty. + /// is null. + public virtual NullableResponse GetIfExists(string siteName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(siteName, nameof(siteName)); + + using var scope = _subscriptionSiteSitesBySubscriptionClientDiagnostics.CreateScope("SubscriptionSiteCollection.GetIfExists"); + scope.Start(); + try + { + var response = _subscriptionSiteSitesBySubscriptionRestClient.Get(Id.SubscriptionId, siteName, cancellationToken: cancellationToken); + if (response.Value == null) + return new NoValueResponse(response.GetRawResponse()); + return Response.FromValue(new SubscriptionSiteResource(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/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SubscriptionSiteResource.Serialization.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SubscriptionSiteResource.Serialization.cs new file mode 100644 index 000000000000..f7b859676a15 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SubscriptionSiteResource.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.SiteManager +{ + public partial class SubscriptionSiteResource : IJsonModel + { + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + SiteData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => ((IJsonModel)Data).Create(ref reader, options); + + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options); + + SiteData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options); + + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => ((IPersistableModel)Data).GetFormatFromOptions(options); + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SubscriptionSiteResource.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SubscriptionSiteResource.cs new file mode 100644 index 000000000000..a39f0d085580 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Generated/SubscriptionSiteResource.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.Resources; +using Azure.ResourceManager.SiteManager.Models; + +namespace Azure.ResourceManager.SiteManager +{ + /// + /// A Class representing a SubscriptionSite 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 GetSubscriptionSiteResource method. + /// Otherwise you can get one from its parent resource using the GetSubscriptionSite method. + /// + public partial class SubscriptionSiteResource : ArmResource + { + /// Generate the resource identifier of a instance. + /// The subscriptionId. + /// The siteName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string siteName) + { + var resourceId = $"/subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites/{siteName}"; + return new ResourceIdentifier(resourceId); + } + + private readonly ClientDiagnostics _subscriptionSiteSitesBySubscriptionClientDiagnostics; + private readonly SitesBySubscriptionRestOperations _subscriptionSiteSitesBySubscriptionRestClient; + private readonly SiteData _data; + + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Edge/sites"; + + /// Initializes a new instance of the class for mocking. + protected SubscriptionSiteResource() + { + } + + /// Initializes a new instance of the class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal SubscriptionSiteResource(ArmClient client, SiteData 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 SubscriptionSiteResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + _subscriptionSiteSitesBySubscriptionClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.SiteManager", ResourceType.Namespace, Diagnostics); + TryGetApiVersion(ResourceType, out string subscriptionSiteSitesBySubscriptionApiVersion); + _subscriptionSiteSitesBySubscriptionRestClient = new SitesBySubscriptionRestOperations(Pipeline, Diagnostics.ApplicationId, Endpoint, subscriptionSiteSitesBySubscriptionApiVersion); +#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 SiteData 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 Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using var scope = _subscriptionSiteSitesBySubscriptionClientDiagnostics.CreateScope("SubscriptionSiteResource.Get"); + scope.Start(); + try + { + var response = await _subscriptionSiteSitesBySubscriptionRestClient.GetAsync(Id.SubscriptionId, Id.Name, cancellationToken).ConfigureAwait(false); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new SubscriptionSiteResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Get + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using var scope = _subscriptionSiteSitesBySubscriptionClientDiagnostics.CreateScope("SubscriptionSiteResource.Get"); + scope.Start(); + try + { + var response = _subscriptionSiteSitesBySubscriptionRestClient.Get(Id.SubscriptionId, Id.Name, cancellationToken); + if (response.Value == null) + throw new RequestFailedException(response.GetRawResponse()); + return Response.FromValue(new SubscriptionSiteResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Delete + /// + /// + /// Default Api Version + /// 2024-02-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 = _subscriptionSiteSitesBySubscriptionClientDiagnostics.CreateScope("SubscriptionSiteResource.Delete"); + scope.Start(); + try + { + var response = await _subscriptionSiteSitesBySubscriptionRestClient.DeleteAsync(Id.SubscriptionId, Id.Name, cancellationToken).ConfigureAwait(false); + var uri = _subscriptionSiteSitesBySubscriptionRestClient.CreateDeleteRequestUri(Id.SubscriptionId, Id.Name); + var rehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(RequestMethod.Delete, uri.ToUri(), uri.ToString(), "None", null, OperationFinalStateVia.OriginalUri.ToString()); + var operation = new SiteManagerArmOperation(response, rehydrationToken); + if (waitUntil == WaitUntil.Completed) + await operation.WaitForCompletionResponseAsync(cancellationToken).ConfigureAwait(false); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Delete + /// + /// + /// Default Api Version + /// 2024-02-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 = _subscriptionSiteSitesBySubscriptionClientDiagnostics.CreateScope("SubscriptionSiteResource.Delete"); + scope.Start(); + try + { + var response = _subscriptionSiteSitesBySubscriptionRestClient.Delete(Id.SubscriptionId, Id.Name, cancellationToken); + var uri = _subscriptionSiteSitesBySubscriptionRestClient.CreateDeleteRequestUri(Id.SubscriptionId, Id.Name); + var rehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(RequestMethod.Delete, uri.ToUri(), uri.ToString(), "None", null, OperationFinalStateVia.OriginalUri.ToString()); + var operation = new SiteManagerArmOperation(response, rehydrationToken); + if (waitUntil == WaitUntil.Completed) + operation.WaitForCompletionResponse(cancellationToken); + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Update + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual async Task> UpdateAsync(SiteUpdate properties, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(properties, nameof(properties)); + + using var scope = _subscriptionSiteSitesBySubscriptionClientDiagnostics.CreateScope("SubscriptionSiteResource.Update"); + scope.Start(); + try + { + var response = await _subscriptionSiteSitesBySubscriptionRestClient.UpdateAsync(Id.SubscriptionId, Id.Name, properties, cancellationToken).ConfigureAwait(false); + return Response.FromValue(new SubscriptionSiteResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a Site + /// + /// + /// Request Path + /// /subscriptions/{subscriptionId}/providers/Microsoft.Edge/sites/{siteName} + /// + /// + /// Operation Id + /// Site_Update + /// + /// + /// Default Api Version + /// 2024-02-01-preview + /// + /// + /// Resource + /// + /// + /// + /// + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual Response Update(SiteUpdate properties, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(properties, nameof(properties)); + + using var scope = _subscriptionSiteSitesBySubscriptionClientDiagnostics.CreateScope("SubscriptionSiteResource.Update"); + scope.Start(); + try + { + var response = _subscriptionSiteSitesBySubscriptionRestClient.Update(Id.SubscriptionId, Id.Name, properties, cancellationToken); + return Response.FromValue(new SubscriptionSiteResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Properties/AssemblyInfo.cs b/sdk/sitemanager/Azure.ResourceManager.SiteManager/src/Properties/AssemblyInfo.cs new file mode 100644 index 000000000000..ae2291871033 --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/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.SiteManager.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("SiteManager")] diff --git a/sdk/sitemanager/Azure.ResourceManager.SiteManager/tsp-location.yaml b/sdk/sitemanager/Azure.ResourceManager.SiteManager/tsp-location.yaml new file mode 100644 index 000000000000..2d1c54d24f2a --- /dev/null +++ b/sdk/sitemanager/Azure.ResourceManager.SiteManager/tsp-location.yaml @@ -0,0 +1,4 @@ +directory: specification/edge/Microsoft.Edge.Sites.Management +commit: 27a6a18feb693251ea80d1894f77fe8c0fdce06a +repo: Azure/azure-rest-api-specs +additionalDirectories: diff --git a/sdk/sitemanager/ci.mgmt.yml b/sdk/sitemanager/ci.mgmt.yml new file mode 100644 index 000000000000..b64b81600c03 --- /dev/null +++ b/sdk/sitemanager/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/sitemanager /ci.mgmt.yml + - sdk/sitemanager /Azure.ResourceManager.SiteManager / + + +extends: + template: /eng/pipelines/templates/stages/archetype-sdk-client.yml + parameters: + ServiceDirectory: sitemanager + ArtifactName: packages + LimitForPullRequest: true + Artifacts: + - name: Azure.ResourceManager.SiteManager + safeName: AzureResourceManagerSiteManager diff --git a/sdk/storage/ci.yml b/sdk/storage/ci.yml index 2ca0501b60bd..85d4fb9f75a5 100644 --- a/sdk/storage/ci.yml +++ b/sdk/storage/ci.yml @@ -11,7 +11,11 @@ trigger: - sdk/storage/ - sdk/storage/Azure.Storage.DataMovement/ - sdk/storage/Azure.Storage.DataMovement.Blobs/ + exclude: + - sdk/storage/Azure.ResourceManager.Storage/ - 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/ diff --git a/sdk/terraform/Azure.ResourceManager.Terraform/api/Azure.ResourceManager.Terraform.net8.0.cs b/sdk/terraform/Azure.ResourceManager.Terraform/api/Azure.ResourceManager.Terraform.net8.0.cs index 6ba77b806a8b..0fc04bdf06eb 100644 --- a/sdk/terraform/Azure.ResourceManager.Terraform/api/Azure.ResourceManager.Terraform.net8.0.cs +++ b/sdk/terraform/Azure.ResourceManager.Terraform/api/Azure.ResourceManager.Terraform.net8.0.cs @@ -19,11 +19,31 @@ namespace Azure.ResourceManager.Terraform.Models { public static partial class ArmTerraformModelFactory { - public static Azure.ResourceManager.Terraform.Models.ExportQueryTerraform ExportQueryTerraform(Azure.ResourceManager.Terraform.Models.TargetTerraformProvider? targetProvider = default(Azure.ResourceManager.Terraform.Models.TargetTerraformProvider?), bool? isOutputFullPropertiesEnabled = default(bool?), bool? isMaskSensitiveEnabled = default(bool?), string query = null, string namePattern = null, bool? isRecursive = default(bool?)) { throw null; } + public static Azure.ResourceManager.Terraform.Models.ExportQueryTerraform ExportQueryTerraform(Azure.ResourceManager.Terraform.Models.TargetTerraformProvider? targetProvider = default(Azure.ResourceManager.Terraform.Models.TargetTerraformProvider?), bool? isOutputFullPropertiesEnabled = default(bool?), bool? isMaskSensitiveEnabled = default(bool?), string query = null, string namePattern = null, bool? isRecursive = default(bool?), string table = null, Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter? authorizationScopeFilter = default(Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter?)) { throw null; } public static Azure.ResourceManager.Terraform.Models.ExportResourceGroupTerraform ExportResourceGroupTerraform(Azure.ResourceManager.Terraform.Models.TargetTerraformProvider? targetProvider = default(Azure.ResourceManager.Terraform.Models.TargetTerraformProvider?), bool? isOutputFullPropertiesEnabled = default(bool?), bool? isMaskSensitiveEnabled = default(bool?), string resourceGroupName = null, string namePattern = null) { throw null; } - public static Azure.ResourceManager.Terraform.Models.TerraformExportResult TerraformExportResult(string configuration = null, System.Collections.Generic.IEnumerable skippedResourceIds = null, System.Collections.Generic.IEnumerable errors = null) { throw null; } + public static Azure.ResourceManager.Terraform.Models.TerraformExportResult TerraformExportResult(string configuration = null, string import = null, System.Collections.Generic.IEnumerable skippedResourceIds = null, System.Collections.Generic.IEnumerable errors = null) { throw null; } public static Azure.ResourceManager.Terraform.Models.TerraformOperationStatus TerraformOperationStatus(Azure.ResourceManager.Terraform.Models.TerraformExportResult properties = null, Azure.ResourceManager.Terraform.Models.TerraformResourceProvisioningState status = default(Azure.ResourceManager.Terraform.Models.TerraformResourceProvisioningState), string name = null, System.DateTimeOffset? startOn = default(System.DateTimeOffset?), System.DateTimeOffset? endOn = default(System.DateTimeOffset?), double? percentComplete = default(double?), Azure.ResponseError error = null) { throw null; } } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct AuthorizationScopeFilter : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public AuthorizationScopeFilter(string value) { throw null; } + public static Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter AtScopeAboveAndBelow { get { throw null; } } + public static Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter AtScopeAndAbove { get { throw null; } } + public static Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter AtScopeAndBelow { get { throw null; } } + public static Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter AtScopeExact { get { throw null; } } + public bool Equals(Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter 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.Terraform.Models.AuthorizationScopeFilter left, Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter right) { throw null; } + public static implicit operator Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter left, Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter right) { throw null; } + public override string ToString() { throw null; } + } public abstract partial class CommonExportProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { protected CommonExportProperties() { } @@ -40,9 +60,11 @@ protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer public partial class ExportQueryTerraform : Azure.ResourceManager.Terraform.Models.CommonExportProperties, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { public ExportQueryTerraform(string query) { } + public Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter? AuthorizationScopeFilter { get { throw null; } set { } } public bool? IsRecursive { get { throw null; } set { } } public string NamePattern { get { throw null; } set { } } public string Query { get { throw null; } } + public string Table { get { throw null; } set { } } protected override void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.ResourceManager.Terraform.Models.ExportQueryTerraform 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) { } @@ -99,6 +121,7 @@ public partial class TerraformExportResult : System.ClientModel.Primitives.IJson internal TerraformExportResult() { } public string Configuration { get { throw null; } } public System.Collections.Generic.IReadOnlyList Errors { get { throw null; } } + public string Import { get { throw null; } } public System.Collections.Generic.IReadOnlyList SkippedResourceIds { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.ResourceManager.Terraform.Models.TerraformExportResult System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } diff --git a/sdk/terraform/Azure.ResourceManager.Terraform/api/Azure.ResourceManager.Terraform.netstandard2.0.cs b/sdk/terraform/Azure.ResourceManager.Terraform/api/Azure.ResourceManager.Terraform.netstandard2.0.cs index 6ba77b806a8b..0fc04bdf06eb 100644 --- a/sdk/terraform/Azure.ResourceManager.Terraform/api/Azure.ResourceManager.Terraform.netstandard2.0.cs +++ b/sdk/terraform/Azure.ResourceManager.Terraform/api/Azure.ResourceManager.Terraform.netstandard2.0.cs @@ -19,11 +19,31 @@ namespace Azure.ResourceManager.Terraform.Models { public static partial class ArmTerraformModelFactory { - public static Azure.ResourceManager.Terraform.Models.ExportQueryTerraform ExportQueryTerraform(Azure.ResourceManager.Terraform.Models.TargetTerraformProvider? targetProvider = default(Azure.ResourceManager.Terraform.Models.TargetTerraformProvider?), bool? isOutputFullPropertiesEnabled = default(bool?), bool? isMaskSensitiveEnabled = default(bool?), string query = null, string namePattern = null, bool? isRecursive = default(bool?)) { throw null; } + public static Azure.ResourceManager.Terraform.Models.ExportQueryTerraform ExportQueryTerraform(Azure.ResourceManager.Terraform.Models.TargetTerraformProvider? targetProvider = default(Azure.ResourceManager.Terraform.Models.TargetTerraformProvider?), bool? isOutputFullPropertiesEnabled = default(bool?), bool? isMaskSensitiveEnabled = default(bool?), string query = null, string namePattern = null, bool? isRecursive = default(bool?), string table = null, Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter? authorizationScopeFilter = default(Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter?)) { throw null; } public static Azure.ResourceManager.Terraform.Models.ExportResourceGroupTerraform ExportResourceGroupTerraform(Azure.ResourceManager.Terraform.Models.TargetTerraformProvider? targetProvider = default(Azure.ResourceManager.Terraform.Models.TargetTerraformProvider?), bool? isOutputFullPropertiesEnabled = default(bool?), bool? isMaskSensitiveEnabled = default(bool?), string resourceGroupName = null, string namePattern = null) { throw null; } - public static Azure.ResourceManager.Terraform.Models.TerraformExportResult TerraformExportResult(string configuration = null, System.Collections.Generic.IEnumerable skippedResourceIds = null, System.Collections.Generic.IEnumerable errors = null) { throw null; } + public static Azure.ResourceManager.Terraform.Models.TerraformExportResult TerraformExportResult(string configuration = null, string import = null, System.Collections.Generic.IEnumerable skippedResourceIds = null, System.Collections.Generic.IEnumerable errors = null) { throw null; } public static Azure.ResourceManager.Terraform.Models.TerraformOperationStatus TerraformOperationStatus(Azure.ResourceManager.Terraform.Models.TerraformExportResult properties = null, Azure.ResourceManager.Terraform.Models.TerraformResourceProvisioningState status = default(Azure.ResourceManager.Terraform.Models.TerraformResourceProvisioningState), string name = null, System.DateTimeOffset? startOn = default(System.DateTimeOffset?), System.DateTimeOffset? endOn = default(System.DateTimeOffset?), double? percentComplete = default(double?), Azure.ResponseError error = null) { throw null; } } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly partial struct AuthorizationScopeFilter : System.IEquatable + { + private readonly object _dummy; + private readonly int _dummyPrimitive; + public AuthorizationScopeFilter(string value) { throw null; } + public static Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter AtScopeAboveAndBelow { get { throw null; } } + public static Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter AtScopeAndAbove { get { throw null; } } + public static Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter AtScopeAndBelow { get { throw null; } } + public static Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter AtScopeExact { get { throw null; } } + public bool Equals(Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter 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.Terraform.Models.AuthorizationScopeFilter left, Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter right) { throw null; } + public static implicit operator Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter (string value) { throw null; } + public static bool operator !=(Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter left, Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter right) { throw null; } + public override string ToString() { throw null; } + } public abstract partial class CommonExportProperties : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { protected CommonExportProperties() { } @@ -40,9 +60,11 @@ protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer public partial class ExportQueryTerraform : Azure.ResourceManager.Terraform.Models.CommonExportProperties, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { public ExportQueryTerraform(string query) { } + public Azure.ResourceManager.Terraform.Models.AuthorizationScopeFilter? AuthorizationScopeFilter { get { throw null; } set { } } public bool? IsRecursive { get { throw null; } set { } } public string NamePattern { get { throw null; } set { } } public string Query { get { throw null; } } + public string Table { get { throw null; } set { } } protected override void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.ResourceManager.Terraform.Models.ExportQueryTerraform 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) { } @@ -99,6 +121,7 @@ public partial class TerraformExportResult : System.ClientModel.Primitives.IJson internal TerraformExportResult() { } public string Configuration { get { throw null; } } public System.Collections.Generic.IReadOnlyList Errors { get { throw null; } } + public string Import { get { throw null; } } public System.Collections.Generic.IReadOnlyList SkippedResourceIds { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.ResourceManager.Terraform.Models.TerraformExportResult System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } diff --git a/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/ArmTerraformModelFactory.cs b/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/ArmTerraformModelFactory.cs index 72b56c7b2a60..ba1de21e590c 100644 --- a/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/ArmTerraformModelFactory.cs +++ b/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/ArmTerraformModelFactory.cs @@ -22,8 +22,10 @@ public static partial class ArmTerraformModelFactory /// The ARG where predicate. Note that you can combine multiple conditions in one `where` predicate, e.g. `resourceGroup =~ "my-rg" and type =~ "microsoft.network/virtualnetworks"`. /// The name pattern of the Terraform resources. /// Whether to recursively list child resources of the query result. + /// The ARG table name. + /// The ARG Scope Filter parameter. /// A new instance for mocking. - public static ExportQueryTerraform ExportQueryTerraform(TargetTerraformProvider? targetProvider = null, bool? isOutputFullPropertiesEnabled = null, bool? isMaskSensitiveEnabled = null, string query = null, string namePattern = null, bool? isRecursive = null) + public static ExportQueryTerraform ExportQueryTerraform(TargetTerraformProvider? targetProvider = null, bool? isOutputFullPropertiesEnabled = null, bool? isMaskSensitiveEnabled = null, string query = null, string namePattern = null, bool? isRecursive = null, string table = null, AuthorizationScopeFilter? authorizationScopeFilter = null) { return new ExportQueryTerraform( CommonExportType.ExportQuery, @@ -33,7 +35,9 @@ public static ExportQueryTerraform ExportQueryTerraform(TargetTerraformProvider? serializedAdditionalRawData: null, query, namePattern, - isRecursive); + isRecursive, + table, + authorizationScopeFilter); } /// Initializes a new instance of . @@ -79,15 +83,16 @@ public static TerraformOperationStatus TerraformOperationStatus(TerraformExportR /// Initializes a new instance of . /// The Terraform configuration content. + /// The Terraform import blocks for the current export, which users can use to run "terraform plan" with to import the resources. /// A list of Azure resources which are not exported to Terraform due to there is no corresponding resources in Terraform. /// A list of errors derived during exporting each resource. /// A new instance for mocking. - public static TerraformExportResult TerraformExportResult(string configuration = null, IEnumerable skippedResourceIds = null, IEnumerable errors = null) + public static TerraformExportResult TerraformExportResult(string configuration = null, string import = null, IEnumerable skippedResourceIds = null, IEnumerable errors = null) { skippedResourceIds ??= new List(); errors ??= new List(); - return new TerraformExportResult(configuration, skippedResourceIds?.ToList(), errors?.ToList(), serializedAdditionalRawData: null); + return new TerraformExportResult(configuration, import, skippedResourceIds?.ToList(), errors?.ToList(), serializedAdditionalRawData: null); } } } diff --git a/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/AuthorizationScopeFilter.cs b/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/AuthorizationScopeFilter.cs new file mode 100644 index 000000000000..70c537b28d37 --- /dev/null +++ b/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/AuthorizationScopeFilter.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 Azure.ResourceManager.Terraform.Models +{ + /// The Azure Resource Graph Authorization Scope Filter parameter. + public readonly partial struct AuthorizationScopeFilter : IEquatable + { + private readonly string _value; + + /// Initializes a new instance of . + /// is null. + public AuthorizationScopeFilter(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + private const string AtScopeAndBelowValue = "AtScopeAndBelow"; + private const string AtScopeAndAboveValue = "AtScopeAndAbove"; + private const string AtScopeAboveAndBelowValue = "AtScopeAboveAndBelow"; + private const string AtScopeExactValue = "AtScopeExact"; + + /// Returns assignments for the given scope and all child scopes. + public static AuthorizationScopeFilter AtScopeAndBelow { get; } = new AuthorizationScopeFilter(AtScopeAndBelowValue); + /// Returns assignments for the given scope and all parent scopes, but not child scopes. + public static AuthorizationScopeFilter AtScopeAndAbove { get; } = new AuthorizationScopeFilter(AtScopeAndAboveValue); + /// Returns assignments for the given scope, all parent scopes, and all child scopes. + public static AuthorizationScopeFilter AtScopeAboveAndBelow { get; } = new AuthorizationScopeFilter(AtScopeAboveAndBelowValue); + /// Returns assignments only for the given scope; no parent or child scopes are included. + public static AuthorizationScopeFilter AtScopeExact { get; } = new AuthorizationScopeFilter(AtScopeExactValue); + /// Determines if two values are the same. + public static bool operator ==(AuthorizationScopeFilter left, AuthorizationScopeFilter right) => left.Equals(right); + /// Determines if two values are not the same. + public static bool operator !=(AuthorizationScopeFilter left, AuthorizationScopeFilter right) => !left.Equals(right); + /// Converts a to a . + public static implicit operator AuthorizationScopeFilter(string value) => new AuthorizationScopeFilter(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is AuthorizationScopeFilter other && Equals(other); + /// + public bool Equals(AuthorizationScopeFilter 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/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/ExportQueryTerraform.Serialization.cs b/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/ExportQueryTerraform.Serialization.cs index 0fcb788785b7..261a97c122de 100644 --- a/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/ExportQueryTerraform.Serialization.cs +++ b/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/ExportQueryTerraform.Serialization.cs @@ -47,6 +47,16 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri writer.WritePropertyName("recursive"u8); writer.WriteBooleanValue(IsRecursive.Value); } + if (Optional.IsDefined(Table)) + { + writer.WritePropertyName("table"u8); + writer.WriteStringValue(Table); + } + if (Optional.IsDefined(AuthorizationScopeFilter)) + { + writer.WritePropertyName("authorizationScopeFilter"u8); + writer.WriteStringValue(AuthorizationScopeFilter.Value.ToString()); + } } ExportQueryTerraform IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) @@ -72,6 +82,8 @@ internal static ExportQueryTerraform DeserializeExportQueryTerraform(JsonElement string query = default; string namePattern = default; bool? recursive = default; + string table = default; + AuthorizationScopeFilter? authorizationScopeFilter = default; CommonExportType type = default; TargetTerraformProvider? targetProvider = default; bool? fullProperties = default; @@ -99,6 +111,20 @@ internal static ExportQueryTerraform DeserializeExportQueryTerraform(JsonElement recursive = property.Value.GetBoolean(); continue; } + if (property.NameEquals("table"u8)) + { + table = property.Value.GetString(); + continue; + } + if (property.NameEquals("authorizationScopeFilter"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + authorizationScopeFilter = new AuthorizationScopeFilter(property.Value.GetString()); + continue; + } if (property.NameEquals("type"u8)) { type = new CommonExportType(property.Value.GetString()); @@ -145,7 +171,9 @@ internal static ExportQueryTerraform DeserializeExportQueryTerraform(JsonElement serializedAdditionalRawData, query, namePattern, - recursive); + recursive, + table, + authorizationScopeFilter); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) diff --git a/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/ExportQueryTerraform.cs b/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/ExportQueryTerraform.cs index 2d7c71a05d0c..13812280ac56 100644 --- a/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/ExportQueryTerraform.cs +++ b/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/ExportQueryTerraform.cs @@ -33,11 +33,15 @@ public ExportQueryTerraform(string query) /// The ARG where predicate. Note that you can combine multiple conditions in one `where` predicate, e.g. `resourceGroup =~ "my-rg" and type =~ "microsoft.network/virtualnetworks"`. /// The name pattern of the Terraform resources. /// Whether to recursively list child resources of the query result. - internal ExportQueryTerraform(CommonExportType type, TargetTerraformProvider? targetProvider, bool? isOutputFullPropertiesEnabled, bool? isMaskSensitiveEnabled, IDictionary serializedAdditionalRawData, string query, string namePattern, bool? isRecursive) : base(type, targetProvider, isOutputFullPropertiesEnabled, isMaskSensitiveEnabled, serializedAdditionalRawData) + /// The ARG table name. + /// The ARG Scope Filter parameter. + internal ExportQueryTerraform(CommonExportType type, TargetTerraformProvider? targetProvider, bool? isOutputFullPropertiesEnabled, bool? isMaskSensitiveEnabled, IDictionary serializedAdditionalRawData, string query, string namePattern, bool? isRecursive, string table, AuthorizationScopeFilter? authorizationScopeFilter) : base(type, targetProvider, isOutputFullPropertiesEnabled, isMaskSensitiveEnabled, serializedAdditionalRawData) { Query = query; NamePattern = namePattern; IsRecursive = isRecursive; + Table = table; + AuthorizationScopeFilter = authorizationScopeFilter; Type = type; } @@ -52,5 +56,9 @@ internal ExportQueryTerraform() public string NamePattern { get; set; } /// Whether to recursively list child resources of the query result. public bool? IsRecursive { get; set; } + /// The ARG table name. + public string Table { get; set; } + /// The ARG Scope Filter parameter. + public AuthorizationScopeFilter? AuthorizationScopeFilter { get; set; } } } diff --git a/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/TerraformExportResult.Serialization.cs b/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/TerraformExportResult.Serialization.cs index 614cffbb3768..21e7f51c7913 100644 --- a/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/TerraformExportResult.Serialization.cs +++ b/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/TerraformExportResult.Serialization.cs @@ -39,6 +39,11 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("configuration"u8); writer.WriteStringValue(Configuration); } + if (Optional.IsDefined(Import)) + { + writer.WritePropertyName("import"u8); + writer.WriteStringValue(Import); + } if (Optional.IsCollectionDefined(SkippedResourceIds)) { writer.WritePropertyName("skippedResources"u8); @@ -102,6 +107,7 @@ internal static TerraformExportResult DeserializeTerraformExportResult(JsonEleme return null; } string configuration = default; + string import = default; IReadOnlyList skippedResources = default; IReadOnlyList errors = default; IDictionary serializedAdditionalRawData = default; @@ -113,6 +119,11 @@ internal static TerraformExportResult DeserializeTerraformExportResult(JsonEleme configuration = property.Value.GetString(); continue; } + if (property.NameEquals("import"u8)) + { + import = property.Value.GetString(); + continue; + } if (property.NameEquals("skippedResources"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) @@ -154,7 +165,7 @@ internal static TerraformExportResult DeserializeTerraformExportResult(JsonEleme } } serializedAdditionalRawData = rawDataDictionary; - return new TerraformExportResult(configuration, skippedResources ?? new ChangeTrackingList(), errors ?? new ChangeTrackingList(), serializedAdditionalRawData); + return new TerraformExportResult(configuration, import, skippedResources ?? new ChangeTrackingList(), errors ?? new ChangeTrackingList(), serializedAdditionalRawData); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) diff --git a/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/TerraformExportResult.cs b/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/TerraformExportResult.cs index 68a442fa99f7..2151ce67b5c2 100644 --- a/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/TerraformExportResult.cs +++ b/sdk/terraform/Azure.ResourceManager.Terraform/src/Generated/Models/TerraformExportResult.cs @@ -55,12 +55,14 @@ internal TerraformExportResult() /// Initializes a new instance of . /// The Terraform configuration content. + /// The Terraform import blocks for the current export, which users can use to run "terraform plan" with to import the resources. /// A list of Azure resources which are not exported to Terraform due to there is no corresponding resources in Terraform. /// A list of errors derived during exporting each resource. /// Keeps track of any properties unknown to the library. - internal TerraformExportResult(string configuration, IReadOnlyList skippedResourceIds, IReadOnlyList errors, IDictionary serializedAdditionalRawData) + internal TerraformExportResult(string configuration, string import, IReadOnlyList skippedResourceIds, IReadOnlyList errors, IDictionary serializedAdditionalRawData) { Configuration = configuration; + Import = import; SkippedResourceIds = skippedResourceIds; Errors = errors; _serializedAdditionalRawData = serializedAdditionalRawData; @@ -68,6 +70,8 @@ internal TerraformExportResult(string configuration, IReadOnlyList The Terraform configuration content. public string Configuration { get; } + /// The Terraform import blocks for the current export, which users can use to run "terraform plan" with to import the resources. + public string Import { get; } /// A list of Azure resources which are not exported to Terraform due to there is no corresponding resources in Terraform. public IReadOnlyList SkippedResourceIds { get; } /// A list of errors derived during exporting each resource. diff --git a/sdk/terraform/Azure.ResourceManager.Terraform/tsp-location.yaml b/sdk/terraform/Azure.ResourceManager.Terraform/tsp-location.yaml index d676e0dde7f9..b151b0bf5a5b 100644 --- a/sdk/terraform/Azure.ResourceManager.Terraform/tsp-location.yaml +++ b/sdk/terraform/Azure.ResourceManager.Terraform/tsp-location.yaml @@ -1,3 +1,4 @@ directory: specification/terraform/Microsoft.AzureTerraform.Management -commit: a4fc4c6bda9ff2315671bca69f9de40a43e2bd8c +commit: 27a6a18feb693251ea80d1894f77fe8c0fdce06a repo: Azure/azure-rest-api-specs +additionalDirectories: diff --git a/sdk/translation/Azure.AI.Translation.Text/api/Azure.AI.Translation.Text.net8.0.cs b/sdk/translation/Azure.AI.Translation.Text/api/Azure.AI.Translation.Text.net8.0.cs index 3ac7ff4db781..fcab6d466834 100644 --- a/sdk/translation/Azure.AI.Translation.Text/api/Azure.AI.Translation.Text.net8.0.cs +++ b/sdk/translation/Azure.AI.Translation.Text/api/Azure.AI.Translation.Text.net8.0.cs @@ -2,24 +2,24 @@ namespace Azure.AI.Translation.Text { public static partial class AITranslationTextModelFactory { - public static Azure.AI.Translation.Text.BackTranslation BackTranslation(string normalizedText = null, string displayText = null, int examplesCount = 0, int frequencyCount = 0) { throw null; } - public static Azure.AI.Translation.Text.BreakSentenceItem BreakSentenceItem(Azure.AI.Translation.Text.DetectedLanguage detectedLanguage = null, System.Collections.Generic.IEnumerable sentencesLengths = null) { throw null; } - public static Azure.AI.Translation.Text.DetectedLanguage DetectedLanguage(string language = null, float confidence = 0f) { throw null; } + public static Azure.AI.Translation.Text.BackTranslation BackTranslation(string normalizedText = null, string displayText = null, int numExamples = 0, int frequencyCount = 0) { throw null; } + public static Azure.AI.Translation.Text.BreakSentenceItem BreakSentenceItem(Azure.AI.Translation.Text.DetectedLanguage detectedLanguage = null, System.Collections.Generic.IEnumerable sentLen = null) { throw null; } + public static Azure.AI.Translation.Text.DetectedLanguage DetectedLanguage(string language = null, float score = 0f) { throw null; } public static Azure.AI.Translation.Text.DictionaryExample DictionaryExample(string sourcePrefix = null, string sourceTerm = null, string sourceSuffix = null, string targetPrefix = null, string targetTerm = null, string targetSuffix = null) { throw null; } public static Azure.AI.Translation.Text.DictionaryExampleItem DictionaryExampleItem(string normalizedSource = null, string normalizedTarget = null, System.Collections.Generic.IEnumerable examples = null) { throw null; } public static Azure.AI.Translation.Text.DictionaryLookupItem DictionaryLookupItem(string normalizedSource = null, string displaySource = null, System.Collections.Generic.IEnumerable translations = null) { throw null; } public static Azure.AI.Translation.Text.DictionaryTranslation DictionaryTranslation(string normalizedTarget = null, string displayTarget = null, string posTag = null, float confidence = 0f, string prefixWord = null, System.Collections.Generic.IEnumerable backTranslations = null) { throw null; } public static Azure.AI.Translation.Text.GetSupportedLanguagesResult GetSupportedLanguagesResult(System.Collections.Generic.IReadOnlyDictionary translation = null, System.Collections.Generic.IReadOnlyDictionary transliteration = null, System.Collections.Generic.IReadOnlyDictionary dictionary = null) { throw null; } - public static Azure.AI.Translation.Text.LanguageScript LanguageScript(string code = null, string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality directionality = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight) { throw null; } - public static Azure.AI.Translation.Text.SentenceBoundaries SentenceBoundaries(System.Collections.Generic.IEnumerable sourceSentencesLengths = null, System.Collections.Generic.IEnumerable translatedSentencesLengths = null) { throw null; } - public static Azure.AI.Translation.Text.SourceDictionaryLanguage SourceDictionaryLanguage(string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality directionality = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight, System.Collections.Generic.IEnumerable translations = null) { throw null; } + public static Azure.AI.Translation.Text.LanguageScript LanguageScript(string code = null, string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality dir = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight) { throw null; } + public static Azure.AI.Translation.Text.SentenceBoundaries SentenceBoundaries(System.Collections.Generic.IEnumerable srcSentLen = null, System.Collections.Generic.IEnumerable transSentLen = null) { throw null; } + public static Azure.AI.Translation.Text.SourceDictionaryLanguage SourceDictionaryLanguage(string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality dir = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight, System.Collections.Generic.IEnumerable translations = null) { throw null; } public static Azure.AI.Translation.Text.SourceText SourceText(string text = null) { throw null; } - public static Azure.AI.Translation.Text.TargetDictionaryLanguage TargetDictionaryLanguage(string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality directionality = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight, string code = null) { throw null; } - public static Azure.AI.Translation.Text.TranslatedTextAlignment TranslatedTextAlignment(string projections = null) { throw null; } + public static Azure.AI.Translation.Text.TargetDictionaryLanguage TargetDictionaryLanguage(string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality dir = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight, string code = null) { throw null; } + public static Azure.AI.Translation.Text.TranslatedTextAlignment TranslatedTextAlignment(string proj = null) { throw null; } public static Azure.AI.Translation.Text.TranslatedTextItem TranslatedTextItem(Azure.AI.Translation.Text.DetectedLanguage detectedLanguage = null, System.Collections.Generic.IEnumerable translations = null, Azure.AI.Translation.Text.SourceText sourceText = null) { throw null; } - public static Azure.AI.Translation.Text.TranslationLanguage TranslationLanguage(string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality directionality = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight) { throw null; } - public static Azure.AI.Translation.Text.TranslationText TranslationText(string targetLanguage = null, string text = null, Azure.AI.Translation.Text.TransliteratedText transliteration = null, Azure.AI.Translation.Text.TranslatedTextAlignment alignment = null, Azure.AI.Translation.Text.SentenceBoundaries sentenceBoundaries = null) { throw null; } - public static Azure.AI.Translation.Text.TransliterableScript TransliterableScript(string code = null, string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality directionality = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight, System.Collections.Generic.IEnumerable targetLanguageScripts = null) { throw null; } + public static Azure.AI.Translation.Text.TranslationLanguage TranslationLanguage(string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality dir = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight) { throw null; } + public static Azure.AI.Translation.Text.TranslationText TranslationText(string to = null, string text = null, Azure.AI.Translation.Text.TransliteratedText transliteration = null, Azure.AI.Translation.Text.TranslatedTextAlignment alignment = null, Azure.AI.Translation.Text.SentenceBoundaries sentLen = null) { throw null; } + public static Azure.AI.Translation.Text.TransliterableScript TransliterableScript(string code = null, string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality dir = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight, System.Collections.Generic.IEnumerable toScripts = null) { throw null; } public static Azure.AI.Translation.Text.TransliteratedText TransliteratedText(string text = null, string script = null) { throw null; } public static Azure.AI.Translation.Text.TransliterationLanguage TransliterationLanguage(string name = null, string nativeName = null, System.Collections.Generic.IEnumerable scripts = null) { throw null; } } @@ -27,9 +27,9 @@ public partial class BackTranslation : System.ClientModel.Primitives.IJsonModel< { internal BackTranslation() { } public string DisplayText { get { throw null; } } - public int ExamplesCount { get { throw null; } } public int FrequencyCount { get { throw null; } } public string NormalizedText { get { throw null; } } + public int NumExamples { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.AI.Translation.Text.BackTranslation 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) { } @@ -41,7 +41,7 @@ public partial class BreakSentenceItem : System.ClientModel.Primitives.IJsonMode { internal BreakSentenceItem() { } public Azure.AI.Translation.Text.DetectedLanguage DetectedLanguage { get { throw null; } } - public System.Collections.Generic.IReadOnlyList SentencesLengths { get { throw null; } } + public System.Collections.Generic.IReadOnlyList SentLen { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.AI.Translation.Text.BreakSentenceItem 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) { } @@ -52,8 +52,8 @@ protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer public partial class DetectedLanguage : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { internal DetectedLanguage() { } - public float Confidence { get { throw null; } } public string Language { get { throw null; } } + public float Score { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.AI.Translation.Text.DetectedLanguage 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) { } @@ -169,7 +169,7 @@ public partial class LanguageScript : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { internal SentenceBoundaries() { } - public System.Collections.Generic.IReadOnlyList SourceSentencesLengths { get { throw null; } } - public System.Collections.Generic.IReadOnlyList TranslatedSentencesLengths { get { throw null; } } + public System.Collections.Generic.IReadOnlyList SrcSentLen { get { throw null; } } + public System.Collections.Generic.IReadOnlyList TransSentLen { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.AI.Translation.Text.SentenceBoundaries 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) { } @@ -205,7 +205,7 @@ protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer public partial class SourceDictionaryLanguage : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { internal SourceDictionaryLanguage() { } - public Azure.AI.Translation.Text.LanguageDirectionality Directionality { get { throw null; } } + public Azure.AI.Translation.Text.LanguageDirectionality Dir { get { throw null; } } public string Name { get { throw null; } } public string NativeName { get { throw null; } } public System.Collections.Generic.IReadOnlyList Translations { get { throw null; } } @@ -231,7 +231,7 @@ public partial class TargetDictionaryLanguage : System.ClientModel.Primitives.IJ { internal TargetDictionaryLanguage() { } public string Code { get { throw null; } } - public Azure.AI.Translation.Text.LanguageDirectionality Directionality { get { throw null; } } + public Azure.AI.Translation.Text.LanguageDirectionality Dir { get { throw null; } } public string Name { get { throw null; } } public string NativeName { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } @@ -343,7 +343,7 @@ public partial class TextTranslationTransliterateOptions public partial class TranslatedTextAlignment : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { internal TranslatedTextAlignment() { } - public string Projections { get { throw null; } } + public string Proj { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.AI.Translation.Text.TranslatedTextAlignment 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) { } @@ -367,7 +367,7 @@ protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer public partial class TranslationLanguage : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { internal TranslationLanguage() { } - public Azure.AI.Translation.Text.LanguageDirectionality Directionality { get { throw null; } } + public Azure.AI.Translation.Text.LanguageDirectionality Dir { get { throw null; } } public string Name { get { throw null; } } public string NativeName { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } @@ -381,9 +381,9 @@ public partial class TranslationText : System.ClientModel.Primitives.IJsonModel< { internal TranslationText() { } public Azure.AI.Translation.Text.TranslatedTextAlignment Alignment { get { throw null; } } - public Azure.AI.Translation.Text.SentenceBoundaries SentenceBoundaries { get { throw null; } } - public string TargetLanguage { get { throw null; } } + public Azure.AI.Translation.Text.SentenceBoundaries SentLen { get { throw null; } } public string Text { get { throw null; } } + public string To { get { throw null; } } public Azure.AI.Translation.Text.TransliteratedText Transliteration { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.AI.Translation.Text.TranslationText System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } @@ -395,7 +395,7 @@ protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer public partial class TransliterableScript : Azure.AI.Translation.Text.LanguageScript, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { internal TransliterableScript() { } - public System.Collections.Generic.IReadOnlyList TargetLanguageScripts { get { throw null; } } + public System.Collections.Generic.IReadOnlyList ToScripts { get { throw null; } } protected override void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.AI.Translation.Text.TransliterableScript 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) { } diff --git a/sdk/translation/Azure.AI.Translation.Text/api/Azure.AI.Translation.Text.netstandard2.0.cs b/sdk/translation/Azure.AI.Translation.Text/api/Azure.AI.Translation.Text.netstandard2.0.cs index 3ac7ff4db781..fcab6d466834 100644 --- a/sdk/translation/Azure.AI.Translation.Text/api/Azure.AI.Translation.Text.netstandard2.0.cs +++ b/sdk/translation/Azure.AI.Translation.Text/api/Azure.AI.Translation.Text.netstandard2.0.cs @@ -2,24 +2,24 @@ namespace Azure.AI.Translation.Text { public static partial class AITranslationTextModelFactory { - public static Azure.AI.Translation.Text.BackTranslation BackTranslation(string normalizedText = null, string displayText = null, int examplesCount = 0, int frequencyCount = 0) { throw null; } - public static Azure.AI.Translation.Text.BreakSentenceItem BreakSentenceItem(Azure.AI.Translation.Text.DetectedLanguage detectedLanguage = null, System.Collections.Generic.IEnumerable sentencesLengths = null) { throw null; } - public static Azure.AI.Translation.Text.DetectedLanguage DetectedLanguage(string language = null, float confidence = 0f) { throw null; } + public static Azure.AI.Translation.Text.BackTranslation BackTranslation(string normalizedText = null, string displayText = null, int numExamples = 0, int frequencyCount = 0) { throw null; } + public static Azure.AI.Translation.Text.BreakSentenceItem BreakSentenceItem(Azure.AI.Translation.Text.DetectedLanguage detectedLanguage = null, System.Collections.Generic.IEnumerable sentLen = null) { throw null; } + public static Azure.AI.Translation.Text.DetectedLanguage DetectedLanguage(string language = null, float score = 0f) { throw null; } public static Azure.AI.Translation.Text.DictionaryExample DictionaryExample(string sourcePrefix = null, string sourceTerm = null, string sourceSuffix = null, string targetPrefix = null, string targetTerm = null, string targetSuffix = null) { throw null; } public static Azure.AI.Translation.Text.DictionaryExampleItem DictionaryExampleItem(string normalizedSource = null, string normalizedTarget = null, System.Collections.Generic.IEnumerable examples = null) { throw null; } public static Azure.AI.Translation.Text.DictionaryLookupItem DictionaryLookupItem(string normalizedSource = null, string displaySource = null, System.Collections.Generic.IEnumerable translations = null) { throw null; } public static Azure.AI.Translation.Text.DictionaryTranslation DictionaryTranslation(string normalizedTarget = null, string displayTarget = null, string posTag = null, float confidence = 0f, string prefixWord = null, System.Collections.Generic.IEnumerable backTranslations = null) { throw null; } public static Azure.AI.Translation.Text.GetSupportedLanguagesResult GetSupportedLanguagesResult(System.Collections.Generic.IReadOnlyDictionary translation = null, System.Collections.Generic.IReadOnlyDictionary transliteration = null, System.Collections.Generic.IReadOnlyDictionary dictionary = null) { throw null; } - public static Azure.AI.Translation.Text.LanguageScript LanguageScript(string code = null, string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality directionality = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight) { throw null; } - public static Azure.AI.Translation.Text.SentenceBoundaries SentenceBoundaries(System.Collections.Generic.IEnumerable sourceSentencesLengths = null, System.Collections.Generic.IEnumerable translatedSentencesLengths = null) { throw null; } - public static Azure.AI.Translation.Text.SourceDictionaryLanguage SourceDictionaryLanguage(string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality directionality = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight, System.Collections.Generic.IEnumerable translations = null) { throw null; } + public static Azure.AI.Translation.Text.LanguageScript LanguageScript(string code = null, string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality dir = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight) { throw null; } + public static Azure.AI.Translation.Text.SentenceBoundaries SentenceBoundaries(System.Collections.Generic.IEnumerable srcSentLen = null, System.Collections.Generic.IEnumerable transSentLen = null) { throw null; } + public static Azure.AI.Translation.Text.SourceDictionaryLanguage SourceDictionaryLanguage(string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality dir = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight, System.Collections.Generic.IEnumerable translations = null) { throw null; } public static Azure.AI.Translation.Text.SourceText SourceText(string text = null) { throw null; } - public static Azure.AI.Translation.Text.TargetDictionaryLanguage TargetDictionaryLanguage(string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality directionality = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight, string code = null) { throw null; } - public static Azure.AI.Translation.Text.TranslatedTextAlignment TranslatedTextAlignment(string projections = null) { throw null; } + public static Azure.AI.Translation.Text.TargetDictionaryLanguage TargetDictionaryLanguage(string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality dir = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight, string code = null) { throw null; } + public static Azure.AI.Translation.Text.TranslatedTextAlignment TranslatedTextAlignment(string proj = null) { throw null; } public static Azure.AI.Translation.Text.TranslatedTextItem TranslatedTextItem(Azure.AI.Translation.Text.DetectedLanguage detectedLanguage = null, System.Collections.Generic.IEnumerable translations = null, Azure.AI.Translation.Text.SourceText sourceText = null) { throw null; } - public static Azure.AI.Translation.Text.TranslationLanguage TranslationLanguage(string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality directionality = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight) { throw null; } - public static Azure.AI.Translation.Text.TranslationText TranslationText(string targetLanguage = null, string text = null, Azure.AI.Translation.Text.TransliteratedText transliteration = null, Azure.AI.Translation.Text.TranslatedTextAlignment alignment = null, Azure.AI.Translation.Text.SentenceBoundaries sentenceBoundaries = null) { throw null; } - public static Azure.AI.Translation.Text.TransliterableScript TransliterableScript(string code = null, string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality directionality = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight, System.Collections.Generic.IEnumerable targetLanguageScripts = null) { throw null; } + public static Azure.AI.Translation.Text.TranslationLanguage TranslationLanguage(string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality dir = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight) { throw null; } + public static Azure.AI.Translation.Text.TranslationText TranslationText(string to = null, string text = null, Azure.AI.Translation.Text.TransliteratedText transliteration = null, Azure.AI.Translation.Text.TranslatedTextAlignment alignment = null, Azure.AI.Translation.Text.SentenceBoundaries sentLen = null) { throw null; } + public static Azure.AI.Translation.Text.TransliterableScript TransliterableScript(string code = null, string name = null, string nativeName = null, Azure.AI.Translation.Text.LanguageDirectionality dir = Azure.AI.Translation.Text.LanguageDirectionality.LeftToRight, System.Collections.Generic.IEnumerable toScripts = null) { throw null; } public static Azure.AI.Translation.Text.TransliteratedText TransliteratedText(string text = null, string script = null) { throw null; } public static Azure.AI.Translation.Text.TransliterationLanguage TransliterationLanguage(string name = null, string nativeName = null, System.Collections.Generic.IEnumerable scripts = null) { throw null; } } @@ -27,9 +27,9 @@ public partial class BackTranslation : System.ClientModel.Primitives.IJsonModel< { internal BackTranslation() { } public string DisplayText { get { throw null; } } - public int ExamplesCount { get { throw null; } } public int FrequencyCount { get { throw null; } } public string NormalizedText { get { throw null; } } + public int NumExamples { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.AI.Translation.Text.BackTranslation 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) { } @@ -41,7 +41,7 @@ public partial class BreakSentenceItem : System.ClientModel.Primitives.IJsonMode { internal BreakSentenceItem() { } public Azure.AI.Translation.Text.DetectedLanguage DetectedLanguage { get { throw null; } } - public System.Collections.Generic.IReadOnlyList SentencesLengths { get { throw null; } } + public System.Collections.Generic.IReadOnlyList SentLen { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.AI.Translation.Text.BreakSentenceItem 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) { } @@ -52,8 +52,8 @@ protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer public partial class DetectedLanguage : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { internal DetectedLanguage() { } - public float Confidence { get { throw null; } } public string Language { get { throw null; } } + public float Score { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.AI.Translation.Text.DetectedLanguage 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) { } @@ -169,7 +169,7 @@ public partial class LanguageScript : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { internal SentenceBoundaries() { } - public System.Collections.Generic.IReadOnlyList SourceSentencesLengths { get { throw null; } } - public System.Collections.Generic.IReadOnlyList TranslatedSentencesLengths { get { throw null; } } + public System.Collections.Generic.IReadOnlyList SrcSentLen { get { throw null; } } + public System.Collections.Generic.IReadOnlyList TransSentLen { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.AI.Translation.Text.SentenceBoundaries 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) { } @@ -205,7 +205,7 @@ protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer public partial class SourceDictionaryLanguage : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { internal SourceDictionaryLanguage() { } - public Azure.AI.Translation.Text.LanguageDirectionality Directionality { get { throw null; } } + public Azure.AI.Translation.Text.LanguageDirectionality Dir { get { throw null; } } public string Name { get { throw null; } } public string NativeName { get { throw null; } } public System.Collections.Generic.IReadOnlyList Translations { get { throw null; } } @@ -231,7 +231,7 @@ public partial class TargetDictionaryLanguage : System.ClientModel.Primitives.IJ { internal TargetDictionaryLanguage() { } public string Code { get { throw null; } } - public Azure.AI.Translation.Text.LanguageDirectionality Directionality { get { throw null; } } + public Azure.AI.Translation.Text.LanguageDirectionality Dir { get { throw null; } } public string Name { get { throw null; } } public string NativeName { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } @@ -343,7 +343,7 @@ public partial class TextTranslationTransliterateOptions public partial class TranslatedTextAlignment : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { internal TranslatedTextAlignment() { } - public string Projections { get { throw null; } } + public string Proj { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.AI.Translation.Text.TranslatedTextAlignment 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) { } @@ -367,7 +367,7 @@ protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer public partial class TranslationLanguage : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { internal TranslationLanguage() { } - public Azure.AI.Translation.Text.LanguageDirectionality Directionality { get { throw null; } } + public Azure.AI.Translation.Text.LanguageDirectionality Dir { get { throw null; } } public string Name { get { throw null; } } public string NativeName { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } @@ -381,9 +381,9 @@ public partial class TranslationText : System.ClientModel.Primitives.IJsonModel< { internal TranslationText() { } public Azure.AI.Translation.Text.TranslatedTextAlignment Alignment { get { throw null; } } - public Azure.AI.Translation.Text.SentenceBoundaries SentenceBoundaries { get { throw null; } } - public string TargetLanguage { get { throw null; } } + public Azure.AI.Translation.Text.SentenceBoundaries SentLen { get { throw null; } } public string Text { get { throw null; } } + public string To { get { throw null; } } public Azure.AI.Translation.Text.TransliteratedText Transliteration { get { throw null; } } protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.AI.Translation.Text.TranslationText System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; } @@ -395,7 +395,7 @@ protected virtual void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer public partial class TransliterableScript : Azure.AI.Translation.Text.LanguageScript, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel { internal TransliterableScript() { } - public System.Collections.Generic.IReadOnlyList TargetLanguageScripts { get { throw null; } } + public System.Collections.Generic.IReadOnlyList ToScripts { get { throw null; } } protected override void JsonModelWriteCore(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) { } Azure.AI.Translation.Text.TransliterableScript 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) { } diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/AITranslationTextModelFactory.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/AITranslationTextModelFactory.cs index 2348b6d02f3d..7ecbf4b5c5d2 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/AITranslationTextModelFactory.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/AITranslationTextModelFactory.cs @@ -30,11 +30,11 @@ public static GetSupportedLanguagesResult GetSupportedLanguagesResult(IReadOnlyD /// Initializes a new instance of . /// Display name of the language in the locale requested via Accept-Language header. /// Display name of the language in the locale native for this language. - /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. + /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. /// A new instance for mocking. - public static TranslationLanguage TranslationLanguage(string name = null, string nativeName = null, LanguageDirectionality directionality = default) + public static TranslationLanguage TranslationLanguage(string name = null, string nativeName = null, LanguageDirectionality dir = default) { - return new TranslationLanguage(name, nativeName, directionality, serializedAdditionalRawData: null); + return new TranslationLanguage(name, nativeName, dir, serializedAdditionalRawData: null); } /// Initializes a new instance of . @@ -53,55 +53,55 @@ public static TransliterationLanguage TransliterationLanguage(string name = null /// Code identifying the script. /// Display name of the script in the locale requested via Accept-Language header. /// Display name of the language in the locale native for the language. - /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. - /// List of scripts available to convert text to. + /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. + /// List of scripts available to convert text to. /// A new instance for mocking. - public static TransliterableScript TransliterableScript(string code = null, string name = null, string nativeName = null, LanguageDirectionality directionality = default, IEnumerable targetLanguageScripts = null) + public static TransliterableScript TransliterableScript(string code = null, string name = null, string nativeName = null, LanguageDirectionality dir = default, IEnumerable toScripts = null) { - targetLanguageScripts ??= new List(); + toScripts ??= new List(); return new TransliterableScript( code, name, nativeName, - directionality, + dir, serializedAdditionalRawData: null, - targetLanguageScripts?.ToList()); + toScripts?.ToList()); } /// Initializes a new instance of . /// Code identifying the script. /// Display name of the script in the locale requested via Accept-Language header. /// Display name of the language in the locale native for the language. - /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. + /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. /// A new instance for mocking. - public static LanguageScript LanguageScript(string code = null, string name = null, string nativeName = null, LanguageDirectionality directionality = default) + public static LanguageScript LanguageScript(string code = null, string name = null, string nativeName = null, LanguageDirectionality dir = default) { - return new LanguageScript(code, name, nativeName, directionality, serializedAdditionalRawData: null); + return new LanguageScript(code, name, nativeName, dir, serializedAdditionalRawData: null); } /// Initializes a new instance of . /// Display name of the language in the locale requested via Accept-Language header. /// Display name of the language in the locale native for this language. - /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. + /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. /// List of languages with alterative translations and examples for the query expressed in the source language. /// A new instance for mocking. - public static SourceDictionaryLanguage SourceDictionaryLanguage(string name = null, string nativeName = null, LanguageDirectionality directionality = default, IEnumerable translations = null) + public static SourceDictionaryLanguage SourceDictionaryLanguage(string name = null, string nativeName = null, LanguageDirectionality dir = default, IEnumerable translations = null) { translations ??= new List(); - return new SourceDictionaryLanguage(name, nativeName, directionality, translations?.ToList(), serializedAdditionalRawData: null); + return new SourceDictionaryLanguage(name, nativeName, dir, translations?.ToList(), serializedAdditionalRawData: null); } /// Initializes a new instance of . /// Display name of the language in the locale requested via Accept-Language header. /// Display name of the language in the locale native for this language. - /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. + /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. /// Language code identifying the target language. /// A new instance for mocking. - public static TargetDictionaryLanguage TargetDictionaryLanguage(string name = null, string nativeName = null, LanguageDirectionality directionality = default, string code = null) + public static TargetDictionaryLanguage TargetDictionaryLanguage(string name = null, string nativeName = null, LanguageDirectionality dir = default, string code = null) { - return new TargetDictionaryLanguage(name, nativeName, directionality, code, serializedAdditionalRawData: null); + return new TargetDictionaryLanguage(name, nativeName, dir, code, serializedAdditionalRawData: null); } /// Initializes a new instance of . @@ -126,31 +126,31 @@ public static TranslatedTextItem TranslatedTextItem(DetectedLanguage detectedLan /// Initializes a new instance of . /// A string representing the code of the detected language. - /// + /// /// A float value indicating the confidence in the result. /// The score is between zero and one and a low score indicates a low confidence. /// /// A new instance for mocking. - public static DetectedLanguage DetectedLanguage(string language = null, float confidence = default) + public static DetectedLanguage DetectedLanguage(string language = null, float score = default) { - return new DetectedLanguage(language, confidence, serializedAdditionalRawData: null); + return new DetectedLanguage(language, score, serializedAdditionalRawData: null); } /// Initializes a new instance of . - /// A string representing the language code of the target language. + /// A string representing the language code of the target language. /// A string giving the translated text. /// An object giving the translated text in the script specified by the toScript parameter. /// Alignment information. - /// Sentence boundaries in the input and output texts. + /// Sentence boundaries in the input and output texts. /// A new instance for mocking. - public static TranslationText TranslationText(string targetLanguage = null, string text = null, TransliteratedText transliteration = null, TranslatedTextAlignment alignment = null, SentenceBoundaries sentenceBoundaries = null) + public static TranslationText TranslationText(string to = null, string text = null, TransliteratedText transliteration = null, TranslatedTextAlignment alignment = null, SentenceBoundaries sentLen = null) { return new TranslationText( - targetLanguage, + to, text, transliteration, alignment, - sentenceBoundaries, + sentLen, serializedAdditionalRawData: null); } @@ -164,7 +164,7 @@ public static TransliteratedText TransliteratedText(string text = null, string s } /// Initializes a new instance of . - /// + /// /// Maps input text to translated text. The alignment information is only provided when the request /// parameter includeAlignment is true. Alignment is returned as a string value of the following /// format: [[SourceTextStartIndex]:[SourceTextEndIndex]–[TgtTextStartIndex]:[TgtTextEndIndex]]. @@ -173,27 +173,27 @@ public static TransliteratedText TransliteratedText(string text = null, string s /// be non-contiguous. When no alignment information is available, the alignment element will be empty. /// /// A new instance for mocking. - public static TranslatedTextAlignment TranslatedTextAlignment(string projections = null) + public static TranslatedTextAlignment TranslatedTextAlignment(string proj = null) { - return new TranslatedTextAlignment(projections, serializedAdditionalRawData: null); + return new TranslatedTextAlignment(proj, serializedAdditionalRawData: null); } /// Initializes a new instance of . - /// + /// /// An integer array representing the lengths of the sentences in the input text. /// The length of the array is the number of sentences, and the values are the length of each sentence. /// - /// + /// /// An integer array representing the lengths of the sentences in the translated text. /// The length of the array is the number of sentences, and the values are the length of each sentence. /// /// A new instance for mocking. - public static SentenceBoundaries SentenceBoundaries(IEnumerable sourceSentencesLengths = null, IEnumerable translatedSentencesLengths = null) + public static SentenceBoundaries SentenceBoundaries(IEnumerable srcSentLen = null, IEnumerable transSentLen = null) { - sourceSentencesLengths ??= new List(); - translatedSentencesLengths ??= new List(); + srcSentLen ??= new List(); + transSentLen ??= new List(); - return new SentenceBoundaries(sourceSentencesLengths?.ToList(), translatedSentencesLengths?.ToList(), serializedAdditionalRawData: null); + return new SentenceBoundaries(srcSentLen?.ToList(), transSentLen?.ToList(), serializedAdditionalRawData: null); } /// Initializes a new instance of . @@ -206,16 +206,16 @@ public static SourceText SourceText(string text = null) /// Initializes a new instance of . /// The detectedLanguage property is only present in the result object when language auto-detection is requested. - /// + /// /// An integer array representing the lengths of the sentences in the input text. /// The length of the array is the number of sentences, and the values are the length of each sentence. /// /// A new instance for mocking. - public static BreakSentenceItem BreakSentenceItem(DetectedLanguage detectedLanguage = null, IEnumerable sentencesLengths = null) + public static BreakSentenceItem BreakSentenceItem(DetectedLanguage detectedLanguage = null, IEnumerable sentLen = null) { - sentencesLengths ??= new List(); + sentLen ??= new List(); - return new BreakSentenceItem(detectedLanguage, sentencesLengths?.ToList(), serializedAdditionalRawData: null); + return new BreakSentenceItem(detectedLanguage, sentLen?.ToList(), serializedAdditionalRawData: null); } /// Initializes a new instance of . @@ -292,7 +292,7 @@ public static DictionaryTranslation DictionaryTranslation(string normalizedTarge /// A string giving the source term that is a back-translation of the target in a form best /// suited for end-user display. /// - /// + /// /// An integer representing the number of examples that are available for this translation pair. /// Actual examples must be retrieved with a separate call to lookup examples. The number is mostly /// intended to facilitate display in a UX. For example, a user interface may add a hyperlink @@ -306,9 +306,9 @@ public static DictionaryTranslation DictionaryTranslation(string normalizedTarge /// field is to provide a user interface with a means to sort back-translations so the most frequent terms are first. /// /// A new instance for mocking. - public static BackTranslation BackTranslation(string normalizedText = null, string displayText = null, int examplesCount = default, int frequencyCount = default) + public static BackTranslation BackTranslation(string normalizedText = null, string displayText = null, int numExamples = default, int frequencyCount = default) { - return new BackTranslation(normalizedText, displayText, examplesCount, frequencyCount, serializedAdditionalRawData: null); + return new BackTranslation(normalizedText, displayText, numExamples, frequencyCount, serializedAdditionalRawData: null); } /// Initializes a new instance of . diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/BackTranslation.Serialization.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/BackTranslation.Serialization.cs index 0ae7b65f4b68..07bfeb3086ed 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/BackTranslation.Serialization.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/BackTranslation.Serialization.cs @@ -39,7 +39,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("displayText"u8); writer.WriteStringValue(DisplayText); writer.WritePropertyName("numExamples"u8); - writer.WriteNumberValue(ExamplesCount); + writer.WriteNumberValue(NumExamples); writer.WritePropertyName("frequencyCount"u8); writer.WriteNumberValue(FrequencyCount); if (options.Format != "W" && _serializedAdditionalRawData != null) diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/BackTranslation.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/BackTranslation.cs index 5eeb74c3c083..9e30c50706fe 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/BackTranslation.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/BackTranslation.cs @@ -54,7 +54,7 @@ public partial class BackTranslation /// A string giving the source term that is a back-translation of the target in a form best /// suited for end-user display. /// - /// + /// /// An integer representing the number of examples that are available for this translation pair. /// Actual examples must be retrieved with a separate call to lookup examples. The number is mostly /// intended to facilitate display in a UX. For example, a user interface may add a hyperlink @@ -68,14 +68,14 @@ public partial class BackTranslation /// field is to provide a user interface with a means to sort back-translations so the most frequent terms are first. /// /// or is null. - internal BackTranslation(string normalizedText, string displayText, int examplesCount, int frequencyCount) + internal BackTranslation(string normalizedText, string displayText, int numExamples, int frequencyCount) { Argument.AssertNotNull(normalizedText, nameof(normalizedText)); Argument.AssertNotNull(displayText, nameof(displayText)); NormalizedText = normalizedText; DisplayText = displayText; - ExamplesCount = examplesCount; + NumExamples = numExamples; FrequencyCount = frequencyCount; } @@ -88,7 +88,7 @@ internal BackTranslation(string normalizedText, string displayText, int examples /// A string giving the source term that is a back-translation of the target in a form best /// suited for end-user display. /// - /// + /// /// An integer representing the number of examples that are available for this translation pair. /// Actual examples must be retrieved with a separate call to lookup examples. The number is mostly /// intended to facilitate display in a UX. For example, a user interface may add a hyperlink @@ -102,11 +102,11 @@ internal BackTranslation(string normalizedText, string displayText, int examples /// field is to provide a user interface with a means to sort back-translations so the most frequent terms are first. /// /// Keeps track of any properties unknown to the library. - internal BackTranslation(string normalizedText, string displayText, int examplesCount, int frequencyCount, IDictionary serializedAdditionalRawData) + internal BackTranslation(string normalizedText, string displayText, int numExamples, int frequencyCount, IDictionary serializedAdditionalRawData) { NormalizedText = normalizedText; DisplayText = displayText; - ExamplesCount = examplesCount; + NumExamples = numExamples; FrequencyCount = frequencyCount; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -135,7 +135,7 @@ internal BackTranslation() /// by a call to lookup examples may be less than numExamples, because additional filtering may be /// applied on the fly to remove "bad" examples. /// - public int ExamplesCount { get; } + public int NumExamples { get; } /// /// An integer representing the frequency of this translation pair in the data. The main purpose of this /// field is to provide a user interface with a means to sort back-translations so the most frequent terms are first. diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/BreakSentenceItem.Serialization.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/BreakSentenceItem.Serialization.cs index d81cd40955d0..3a7145034794 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/BreakSentenceItem.Serialization.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/BreakSentenceItem.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WritePropertyName("sentLen"u8); writer.WriteStartArray(); - foreach (var item in SentencesLengths) + foreach (var item in SentLen) { writer.WriteNumberValue(item); } diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/BreakSentenceItem.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/BreakSentenceItem.cs index c1d283a64f86..47a9734eb2e1 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/BreakSentenceItem.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/BreakSentenceItem.cs @@ -47,29 +47,29 @@ public partial class BreakSentenceItem private IDictionary _serializedAdditionalRawData; /// Initializes a new instance of . - /// + /// /// An integer array representing the lengths of the sentences in the input text. /// The length of the array is the number of sentences, and the values are the length of each sentence. /// - /// is null. - internal BreakSentenceItem(IEnumerable sentencesLengths) + /// is null. + internal BreakSentenceItem(IEnumerable sentLen) { - Argument.AssertNotNull(sentencesLengths, nameof(sentencesLengths)); + Argument.AssertNotNull(sentLen, nameof(sentLen)); - SentencesLengths = sentencesLengths.ToList(); + SentLen = sentLen.ToList(); } /// Initializes a new instance of . /// The detectedLanguage property is only present in the result object when language auto-detection is requested. - /// + /// /// An integer array representing the lengths of the sentences in the input text. /// The length of the array is the number of sentences, and the values are the length of each sentence. /// /// Keeps track of any properties unknown to the library. - internal BreakSentenceItem(DetectedLanguage detectedLanguage, IReadOnlyList sentencesLengths, IDictionary serializedAdditionalRawData) + internal BreakSentenceItem(DetectedLanguage detectedLanguage, IReadOnlyList sentLen, IDictionary serializedAdditionalRawData) { DetectedLanguage = detectedLanguage; - SentencesLengths = sentencesLengths; + SentLen = sentLen; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -84,6 +84,6 @@ internal BreakSentenceItem() /// An integer array representing the lengths of the sentences in the input text. /// The length of the array is the number of sentences, and the values are the length of each sentence. /// - public IReadOnlyList SentencesLengths { get; } + public IReadOnlyList SentLen { get; } } } diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/DetectedLanguage.Serialization.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/DetectedLanguage.Serialization.cs index 2f41f3486b7a..8986a4f6b236 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/DetectedLanguage.Serialization.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/DetectedLanguage.Serialization.cs @@ -37,7 +37,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("language"u8); writer.WriteStringValue(Language); writer.WritePropertyName("score"u8); - writer.WriteNumberValue(Confidence); + writer.WriteNumberValue(Score); if (options.Format != "W" && _serializedAdditionalRawData != null) { foreach (var item in _serializedAdditionalRawData) diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/DetectedLanguage.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/DetectedLanguage.cs index 22b9c2194b90..3be254c3db19 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/DetectedLanguage.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/DetectedLanguage.cs @@ -47,30 +47,30 @@ public partial class DetectedLanguage /// Initializes a new instance of . /// A string representing the code of the detected language. - /// + /// /// A float value indicating the confidence in the result. /// The score is between zero and one and a low score indicates a low confidence. /// /// is null. - internal DetectedLanguage(string language, float confidence) + internal DetectedLanguage(string language, float score) { Argument.AssertNotNull(language, nameof(language)); Language = language; - Confidence = confidence; + Score = score; } /// Initializes a new instance of . /// A string representing the code of the detected language. - /// + /// /// A float value indicating the confidence in the result. /// The score is between zero and one and a low score indicates a low confidence. /// /// Keeps track of any properties unknown to the library. - internal DetectedLanguage(string language, float confidence, IDictionary serializedAdditionalRawData) + internal DetectedLanguage(string language, float score, IDictionary serializedAdditionalRawData) { Language = language; - Confidence = confidence; + Score = score; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -85,6 +85,6 @@ internal DetectedLanguage() /// A float value indicating the confidence in the result. /// The score is between zero and one and a low score indicates a low confidence. /// - public float Confidence { get; } + public float Score { get; } } } diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/LanguageScript.Serialization.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/LanguageScript.Serialization.cs index f4878c316a0e..f1ac03b5eaeb 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/LanguageScript.Serialization.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/LanguageScript.Serialization.cs @@ -41,7 +41,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("nativeName"u8); writer.WriteStringValue(NativeName); writer.WritePropertyName("dir"u8); - writer.WriteStringValue(Directionality.ToSerialString()); + writer.WriteStringValue(Dir.ToSerialString()); if (options.Format != "W" && _serializedAdditionalRawData != null) { foreach (var item in _serializedAdditionalRawData) diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/LanguageScript.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/LanguageScript.cs index 94eb100e4809..314371ec9c64 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/LanguageScript.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/LanguageScript.cs @@ -49,9 +49,9 @@ public partial class LanguageScript /// Code identifying the script. /// Display name of the script in the locale requested via Accept-Language header. /// Display name of the language in the locale native for the language. - /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. + /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. /// , or is null. - internal LanguageScript(string code, string name, string nativeName, LanguageDirectionality directionality) + internal LanguageScript(string code, string name, string nativeName, LanguageDirectionality dir) { Argument.AssertNotNull(code, nameof(code)); Argument.AssertNotNull(name, nameof(name)); @@ -60,21 +60,21 @@ internal LanguageScript(string code, string name, string nativeName, LanguageDir Code = code; Name = name; NativeName = nativeName; - Directionality = directionality; + Dir = dir; } /// Initializes a new instance of . /// Code identifying the script. /// Display name of the script in the locale requested via Accept-Language header. /// Display name of the language in the locale native for the language. - /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. + /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. /// Keeps track of any properties unknown to the library. - internal LanguageScript(string code, string name, string nativeName, LanguageDirectionality directionality, IDictionary serializedAdditionalRawData) + internal LanguageScript(string code, string name, string nativeName, LanguageDirectionality dir, IDictionary serializedAdditionalRawData) { Code = code; Name = name; NativeName = nativeName; - Directionality = directionality; + Dir = dir; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -90,6 +90,6 @@ internal LanguageScript() /// Display name of the language in the locale native for the language. public string NativeName { get; } /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. - public LanguageDirectionality Directionality { get; } + public LanguageDirectionality Dir { get; } } } diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/SentenceBoundaries.Serialization.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/SentenceBoundaries.Serialization.cs index 59bbe075d0a3..7003b22d4a9f 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/SentenceBoundaries.Serialization.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/SentenceBoundaries.Serialization.cs @@ -36,14 +36,14 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("srcSentLen"u8); writer.WriteStartArray(); - foreach (var item in SourceSentencesLengths) + foreach (var item in SrcSentLen) { writer.WriteNumberValue(item); } writer.WriteEndArray(); writer.WritePropertyName("transSentLen"u8); writer.WriteStartArray(); - foreach (var item in TranslatedSentencesLengths) + foreach (var item in TransSentLen) { writer.WriteNumberValue(item); } diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/SentenceBoundaries.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/SentenceBoundaries.cs index 70fd3b61c965..b800a077525d 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/SentenceBoundaries.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/SentenceBoundaries.cs @@ -47,38 +47,38 @@ public partial class SentenceBoundaries private IDictionary _serializedAdditionalRawData; /// Initializes a new instance of . - /// + /// /// An integer array representing the lengths of the sentences in the input text. /// The length of the array is the number of sentences, and the values are the length of each sentence. /// - /// + /// /// An integer array representing the lengths of the sentences in the translated text. /// The length of the array is the number of sentences, and the values are the length of each sentence. /// - /// or is null. - internal SentenceBoundaries(IEnumerable sourceSentencesLengths, IEnumerable translatedSentencesLengths) + /// or is null. + internal SentenceBoundaries(IEnumerable srcSentLen, IEnumerable transSentLen) { - Argument.AssertNotNull(sourceSentencesLengths, nameof(sourceSentencesLengths)); - Argument.AssertNotNull(translatedSentencesLengths, nameof(translatedSentencesLengths)); + Argument.AssertNotNull(srcSentLen, nameof(srcSentLen)); + Argument.AssertNotNull(transSentLen, nameof(transSentLen)); - SourceSentencesLengths = sourceSentencesLengths.ToList(); - TranslatedSentencesLengths = translatedSentencesLengths.ToList(); + SrcSentLen = srcSentLen.ToList(); + TransSentLen = transSentLen.ToList(); } /// Initializes a new instance of . - /// + /// /// An integer array representing the lengths of the sentences in the input text. /// The length of the array is the number of sentences, and the values are the length of each sentence. /// - /// + /// /// An integer array representing the lengths of the sentences in the translated text. /// The length of the array is the number of sentences, and the values are the length of each sentence. /// /// Keeps track of any properties unknown to the library. - internal SentenceBoundaries(IReadOnlyList sourceSentencesLengths, IReadOnlyList translatedSentencesLengths, IDictionary serializedAdditionalRawData) + internal SentenceBoundaries(IReadOnlyList srcSentLen, IReadOnlyList transSentLen, IDictionary serializedAdditionalRawData) { - SourceSentencesLengths = sourceSentencesLengths; - TranslatedSentencesLengths = translatedSentencesLengths; + SrcSentLen = srcSentLen; + TransSentLen = transSentLen; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -91,11 +91,11 @@ internal SentenceBoundaries() /// An integer array representing the lengths of the sentences in the input text. /// The length of the array is the number of sentences, and the values are the length of each sentence. /// - public IReadOnlyList SourceSentencesLengths { get; } + public IReadOnlyList SrcSentLen { get; } /// /// An integer array representing the lengths of the sentences in the translated text. /// The length of the array is the number of sentences, and the values are the length of each sentence. /// - public IReadOnlyList TranslatedSentencesLengths { get; } + public IReadOnlyList TransSentLen { get; } } } diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/SourceDictionaryLanguage.Serialization.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/SourceDictionaryLanguage.Serialization.cs index d9b45a50b6bc..a7634627f3c5 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/SourceDictionaryLanguage.Serialization.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/SourceDictionaryLanguage.Serialization.cs @@ -39,7 +39,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("nativeName"u8); writer.WriteStringValue(NativeName); writer.WritePropertyName("dir"u8); - writer.WriteStringValue(Directionality.ToSerialString()); + writer.WriteStringValue(Dir.ToSerialString()); writer.WritePropertyName("translations"u8); writer.WriteStartArray(); foreach (var item in Translations) diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/SourceDictionaryLanguage.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/SourceDictionaryLanguage.cs index cf0a057a1b7b..4ab55b7eac91 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/SourceDictionaryLanguage.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/SourceDictionaryLanguage.cs @@ -49,10 +49,10 @@ public partial class SourceDictionaryLanguage /// Initializes a new instance of . /// Display name of the language in the locale requested via Accept-Language header. /// Display name of the language in the locale native for this language. - /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. + /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. /// List of languages with alterative translations and examples for the query expressed in the source language. /// , or is null. - internal SourceDictionaryLanguage(string name, string nativeName, LanguageDirectionality directionality, IEnumerable translations) + internal SourceDictionaryLanguage(string name, string nativeName, LanguageDirectionality dir, IEnumerable translations) { Argument.AssertNotNull(name, nameof(name)); Argument.AssertNotNull(nativeName, nameof(nativeName)); @@ -60,21 +60,21 @@ internal SourceDictionaryLanguage(string name, string nativeName, LanguageDirect Name = name; NativeName = nativeName; - Directionality = directionality; + Dir = dir; Translations = translations.ToList(); } /// Initializes a new instance of . /// Display name of the language in the locale requested via Accept-Language header. /// Display name of the language in the locale native for this language. - /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. + /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. /// List of languages with alterative translations and examples for the query expressed in the source language. /// Keeps track of any properties unknown to the library. - internal SourceDictionaryLanguage(string name, string nativeName, LanguageDirectionality directionality, IReadOnlyList translations, IDictionary serializedAdditionalRawData) + internal SourceDictionaryLanguage(string name, string nativeName, LanguageDirectionality dir, IReadOnlyList translations, IDictionary serializedAdditionalRawData) { Name = name; NativeName = nativeName; - Directionality = directionality; + Dir = dir; Translations = translations; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -89,7 +89,7 @@ internal SourceDictionaryLanguage() /// Display name of the language in the locale native for this language. public string NativeName { get; } /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. - public LanguageDirectionality Directionality { get; } + public LanguageDirectionality Dir { get; } /// List of languages with alterative translations and examples for the query expressed in the source language. public IReadOnlyList Translations { get; } } diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TargetDictionaryLanguage.Serialization.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TargetDictionaryLanguage.Serialization.cs index 85add6867f99..c70fb22ded00 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TargetDictionaryLanguage.Serialization.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TargetDictionaryLanguage.Serialization.cs @@ -39,7 +39,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("nativeName"u8); writer.WriteStringValue(NativeName); writer.WritePropertyName("dir"u8); - writer.WriteStringValue(Directionality.ToSerialString()); + writer.WriteStringValue(Dir.ToSerialString()); writer.WritePropertyName("code"u8); writer.WriteStringValue(Code); if (options.Format != "W" && _serializedAdditionalRawData != null) diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TargetDictionaryLanguage.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TargetDictionaryLanguage.cs index 81845ba309e5..c296c28456bf 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TargetDictionaryLanguage.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TargetDictionaryLanguage.cs @@ -48,10 +48,10 @@ public partial class TargetDictionaryLanguage /// Initializes a new instance of . /// Display name of the language in the locale requested via Accept-Language header. /// Display name of the language in the locale native for this language. - /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. + /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. /// Language code identifying the target language. /// , or is null. - internal TargetDictionaryLanguage(string name, string nativeName, LanguageDirectionality directionality, string code) + internal TargetDictionaryLanguage(string name, string nativeName, LanguageDirectionality dir, string code) { Argument.AssertNotNull(name, nameof(name)); Argument.AssertNotNull(nativeName, nameof(nativeName)); @@ -59,21 +59,21 @@ internal TargetDictionaryLanguage(string name, string nativeName, LanguageDirect Name = name; NativeName = nativeName; - Directionality = directionality; + Dir = dir; Code = code; } /// Initializes a new instance of . /// Display name of the language in the locale requested via Accept-Language header. /// Display name of the language in the locale native for this language. - /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. + /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. /// Language code identifying the target language. /// Keeps track of any properties unknown to the library. - internal TargetDictionaryLanguage(string name, string nativeName, LanguageDirectionality directionality, string code, IDictionary serializedAdditionalRawData) + internal TargetDictionaryLanguage(string name, string nativeName, LanguageDirectionality dir, string code, IDictionary serializedAdditionalRawData) { Name = name; NativeName = nativeName; - Directionality = directionality; + Dir = dir; Code = code; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -88,7 +88,7 @@ internal TargetDictionaryLanguage() /// Display name of the language in the locale native for this language. public string NativeName { get; } /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. - public LanguageDirectionality Directionality { get; } + public LanguageDirectionality Dir { get; } /// Language code identifying the target language. public string Code { get; } } diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TextTranslationClient.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TextTranslationClient.cs index a109230e24f6..d7c7f89e113c 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TextTranslationClient.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TextTranslationClient.cs @@ -252,7 +252,7 @@ internal HttpMessage CreateGetSupportedLanguagesRequest(string clientTraceId, st return message; } - internal HttpMessage CreateTranslateRequest(IEnumerable targetLanguages, RequestContent content, string clientTraceId, string sourceLanguage, string textType, string category, string profanityAction, string profanityMarker, bool? includeAlignment, bool? includeSentenceLength, string suggestedSourceLanguage, string sourceLanguageScript, string targetLanguageScript, bool? allowFallback, RequestContext context) + internal HttpMessage CreateTranslateRequest(IEnumerable to, RequestContent content, string clientTraceId, string @from, string textType, string category, string profanityAction, string profanityMarker, bool? includeAlignment, bool? includeSentenceLength, string suggestedFrom, string fromScript, string toScript, bool? allowFallback, RequestContext context) { var message = _pipeline.CreateMessage(context, ResponseClassifier200); var request = message.Request; @@ -260,16 +260,16 @@ internal HttpMessage CreateTranslateRequest(IEnumerable targetLanguages, var uri = new RawRequestUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/translate", false); - if (targetLanguages != null && !(targetLanguages is ChangeTrackingList changeTrackingList && changeTrackingList.IsUndefined)) + if (to != null && !(to is ChangeTrackingList changeTrackingList && changeTrackingList.IsUndefined)) { - foreach (var param in targetLanguages) + foreach (var param in to) { uri.AppendQuery("to", param, true); } } - if (sourceLanguage != null) + if (@from != null) { - uri.AppendQuery("from", sourceLanguage, true); + uri.AppendQuery("from", @from, true); } if (textType != null) { @@ -295,17 +295,17 @@ internal HttpMessage CreateTranslateRequest(IEnumerable targetLanguages, { uri.AppendQuery("includeSentenceLength", includeSentenceLength.Value, true); } - if (suggestedSourceLanguage != null) + if (suggestedFrom != null) { - uri.AppendQuery("suggestedFrom", suggestedSourceLanguage, true); + uri.AppendQuery("suggestedFrom", suggestedFrom, true); } - if (sourceLanguageScript != null) + if (fromScript != null) { - uri.AppendQuery("fromScript", sourceLanguageScript, true); + uri.AppendQuery("fromScript", fromScript, true); } - if (targetLanguageScript != null) + if (toScript != null) { - uri.AppendQuery("toScript", targetLanguageScript, true); + uri.AppendQuery("toScript", toScript, true); } if (allowFallback != null) { @@ -323,7 +323,7 @@ internal HttpMessage CreateTranslateRequest(IEnumerable targetLanguages, return message; } - internal HttpMessage CreateTransliterateRequest(string language, string sourceLanguageScript, string targetLanguageScript, RequestContent content, string clientTraceId, RequestContext context) + internal HttpMessage CreateTransliterateRequest(string language, string fromScript, string toScript, RequestContent content, string clientTraceId, RequestContext context) { var message = _pipeline.CreateMessage(context, ResponseClassifier200); var request = message.Request; @@ -332,8 +332,8 @@ internal HttpMessage CreateTransliterateRequest(string language, string sourceLa uri.Reset(_endpoint); uri.AppendPath("/transliterate", false); uri.AppendQuery("language", language, true); - uri.AppendQuery("fromScript", sourceLanguageScript, true); - uri.AppendQuery("toScript", targetLanguageScript, true); + uri.AppendQuery("fromScript", fromScript, true); + uri.AppendQuery("toScript", toScript, true); uri.AppendQuery("api-version", _apiVersion, true); request.Uri = uri; request.Headers.Add("Accept", "application/json"); @@ -374,7 +374,7 @@ internal HttpMessage CreateFindSentenceBoundariesRequest(RequestContent content, return message; } - internal HttpMessage CreateLookupDictionaryEntriesRequest(string sourceLanguage, string targetLanguage, RequestContent content, string clientTraceId, RequestContext context) + internal HttpMessage CreateLookupDictionaryEntriesRequest(string @from, string to, RequestContent content, string clientTraceId, RequestContext context) { var message = _pipeline.CreateMessage(context, ResponseClassifier200); var request = message.Request; @@ -382,8 +382,8 @@ internal HttpMessage CreateLookupDictionaryEntriesRequest(string sourceLanguage, var uri = new RawRequestUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/dictionary/lookup", false); - uri.AppendQuery("from", sourceLanguage, true); - uri.AppendQuery("to", targetLanguage, true); + uri.AppendQuery("from", @from, true); + uri.AppendQuery("to", to, true); uri.AppendQuery("api-version", _apiVersion, true); request.Uri = uri; request.Headers.Add("Accept", "application/json"); @@ -396,7 +396,7 @@ internal HttpMessage CreateLookupDictionaryEntriesRequest(string sourceLanguage, return message; } - internal HttpMessage CreateLookupDictionaryExamplesRequest(string sourceLanguage, string targetLanguage, RequestContent content, string clientTraceId, RequestContext context) + internal HttpMessage CreateLookupDictionaryExamplesRequest(string @from, string to, RequestContent content, string clientTraceId, RequestContext context) { var message = _pipeline.CreateMessage(context, ResponseClassifier200); var request = message.Request; @@ -404,8 +404,8 @@ internal HttpMessage CreateLookupDictionaryExamplesRequest(string sourceLanguage var uri = new RawRequestUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/dictionary/examples", false); - uri.AppendQuery("from", sourceLanguage, true); - uri.AppendQuery("to", targetLanguage, true); + uri.AppendQuery("from", @from, true); + uri.AppendQuery("to", to, true); uri.AppendQuery("api-version", _apiVersion, true); request.Uri = uri; request.Headers.Add("Accept", "application/json"); diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslatedTextAlignment.Serialization.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslatedTextAlignment.Serialization.cs index b8c4a686ce3e..e5d5691b21b9 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslatedTextAlignment.Serialization.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslatedTextAlignment.Serialization.cs @@ -35,7 +35,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WritePropertyName("proj"u8); - writer.WriteStringValue(Projections); + writer.WriteStringValue(Proj); if (options.Format != "W" && _serializedAdditionalRawData != null) { foreach (var item in _serializedAdditionalRawData) diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslatedTextAlignment.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslatedTextAlignment.cs index 410a73875cfe..0d697a283a56 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslatedTextAlignment.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslatedTextAlignment.cs @@ -46,7 +46,7 @@ public partial class TranslatedTextAlignment private IDictionary _serializedAdditionalRawData; /// Initializes a new instance of . - /// + /// /// Maps input text to translated text. The alignment information is only provided when the request /// parameter includeAlignment is true. Alignment is returned as a string value of the following /// format: [[SourceTextStartIndex]:[SourceTextEndIndex]–[TgtTextStartIndex]:[TgtTextEndIndex]]. @@ -54,16 +54,16 @@ public partial class TranslatedTextAlignment /// One word may align with zero, one, or multiple words in the other language, and the aligned words may /// be non-contiguous. When no alignment information is available, the alignment element will be empty. /// - /// is null. - internal TranslatedTextAlignment(string projections) + /// is null. + internal TranslatedTextAlignment(string proj) { - Argument.AssertNotNull(projections, nameof(projections)); + Argument.AssertNotNull(proj, nameof(proj)); - Projections = projections; + Proj = proj; } /// Initializes a new instance of . - /// + /// /// Maps input text to translated text. The alignment information is only provided when the request /// parameter includeAlignment is true. Alignment is returned as a string value of the following /// format: [[SourceTextStartIndex]:[SourceTextEndIndex]–[TgtTextStartIndex]:[TgtTextEndIndex]]. @@ -72,9 +72,9 @@ internal TranslatedTextAlignment(string projections) /// be non-contiguous. When no alignment information is available, the alignment element will be empty. /// /// Keeps track of any properties unknown to the library. - internal TranslatedTextAlignment(string projections, IDictionary serializedAdditionalRawData) + internal TranslatedTextAlignment(string proj, IDictionary serializedAdditionalRawData) { - Projections = projections; + Proj = proj; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -91,6 +91,6 @@ internal TranslatedTextAlignment() /// One word may align with zero, one, or multiple words in the other language, and the aligned words may /// be non-contiguous. When no alignment information is available, the alignment element will be empty. /// - public string Projections { get; } + public string Proj { get; } } } diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslationLanguage.Serialization.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslationLanguage.Serialization.cs index a24758b297e6..3af71d78a490 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslationLanguage.Serialization.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslationLanguage.Serialization.cs @@ -39,7 +39,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("nativeName"u8); writer.WriteStringValue(NativeName); writer.WritePropertyName("dir"u8); - writer.WriteStringValue(Directionality.ToSerialString()); + writer.WriteStringValue(Dir.ToSerialString()); if (options.Format != "W" && _serializedAdditionalRawData != null) { foreach (var item in _serializedAdditionalRawData) diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslationLanguage.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslationLanguage.cs index 9fe1669f9945..3f73d4dfb717 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslationLanguage.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslationLanguage.cs @@ -51,28 +51,28 @@ public partial class TranslationLanguage /// Initializes a new instance of . /// Display name of the language in the locale requested via Accept-Language header. /// Display name of the language in the locale native for this language. - /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. + /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. /// or is null. - internal TranslationLanguage(string name, string nativeName, LanguageDirectionality directionality) + internal TranslationLanguage(string name, string nativeName, LanguageDirectionality dir) { Argument.AssertNotNull(name, nameof(name)); Argument.AssertNotNull(nativeName, nameof(nativeName)); Name = name; NativeName = nativeName; - Directionality = directionality; + Dir = dir; } /// Initializes a new instance of . /// Display name of the language in the locale requested via Accept-Language header. /// Display name of the language in the locale native for this language. - /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. + /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. /// Keeps track of any properties unknown to the library. - internal TranslationLanguage(string name, string nativeName, LanguageDirectionality directionality, IDictionary serializedAdditionalRawData) + internal TranslationLanguage(string name, string nativeName, LanguageDirectionality dir, IDictionary serializedAdditionalRawData) { Name = name; NativeName = nativeName; - Directionality = directionality; + Dir = dir; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -86,6 +86,6 @@ internal TranslationLanguage() /// Display name of the language in the locale native for this language. public string NativeName { get; } /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. - public LanguageDirectionality Directionality { get; } + public LanguageDirectionality Dir { get; } } } diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslationText.Serialization.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslationText.Serialization.cs index 0b2d6845fe93..d4133aaca421 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslationText.Serialization.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslationText.Serialization.cs @@ -35,7 +35,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit } writer.WritePropertyName("to"u8); - writer.WriteStringValue(TargetLanguage); + writer.WriteStringValue(To); writer.WritePropertyName("text"u8); writer.WriteStringValue(Text); if (Optional.IsDefined(Transliteration)) @@ -48,10 +48,10 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit writer.WritePropertyName("alignment"u8); writer.WriteObjectValue(Alignment, options); } - if (Optional.IsDefined(SentenceBoundaries)) + if (Optional.IsDefined(SentLen)) { writer.WritePropertyName("sentLen"u8); - writer.WriteObjectValue(SentenceBoundaries, options); + writer.WriteObjectValue(SentLen, options); } if (options.Format != "W" && _serializedAdditionalRawData != null) { diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslationText.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslationText.cs index e283bbf676d4..ea46814957e7 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslationText.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TranslationText.cs @@ -46,32 +46,32 @@ public partial class TranslationText private IDictionary _serializedAdditionalRawData; /// Initializes a new instance of . - /// A string representing the language code of the target language. + /// A string representing the language code of the target language. /// A string giving the translated text. - /// or is null. - internal TranslationText(string targetLanguage, string text) + /// or is null. + internal TranslationText(string to, string text) { - Argument.AssertNotNull(targetLanguage, nameof(targetLanguage)); + Argument.AssertNotNull(to, nameof(to)); Argument.AssertNotNull(text, nameof(text)); - TargetLanguage = targetLanguage; + To = to; Text = text; } /// Initializes a new instance of . - /// A string representing the language code of the target language. + /// A string representing the language code of the target language. /// A string giving the translated text. /// An object giving the translated text in the script specified by the toScript parameter. /// Alignment information. - /// Sentence boundaries in the input and output texts. + /// Sentence boundaries in the input and output texts. /// Keeps track of any properties unknown to the library. - internal TranslationText(string targetLanguage, string text, TransliteratedText transliteration, TranslatedTextAlignment alignment, SentenceBoundaries sentenceBoundaries, IDictionary serializedAdditionalRawData) + internal TranslationText(string to, string text, TransliteratedText transliteration, TranslatedTextAlignment alignment, SentenceBoundaries sentLen, IDictionary serializedAdditionalRawData) { - TargetLanguage = targetLanguage; + To = to; Text = text; Transliteration = transliteration; Alignment = alignment; - SentenceBoundaries = sentenceBoundaries; + SentLen = sentLen; _serializedAdditionalRawData = serializedAdditionalRawData; } @@ -81,7 +81,7 @@ internal TranslationText() } /// A string representing the language code of the target language. - public string TargetLanguage { get; } + public string To { get; } /// A string giving the translated text. public string Text { get; } /// An object giving the translated text in the script specified by the toScript parameter. @@ -89,6 +89,6 @@ internal TranslationText() /// Alignment information. public TranslatedTextAlignment Alignment { get; } /// Sentence boundaries in the input and output texts. - public SentenceBoundaries SentenceBoundaries { get; } + public SentenceBoundaries SentLen { get; } } } diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TransliterableScript.Serialization.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TransliterableScript.Serialization.cs index ad9e691d44b0..3070c972c449 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TransliterableScript.Serialization.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TransliterableScript.Serialization.cs @@ -37,7 +37,7 @@ protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWri base.JsonModelWriteCore(writer, options); writer.WritePropertyName("toScripts"u8); writer.WriteStartArray(); - foreach (var item in TargetLanguageScripts) + foreach (var item in ToScripts) { writer.WriteObjectValue(item, options); } diff --git a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TransliterableScript.cs b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TransliterableScript.cs index 24de9ee02a96..9297e7b27e47 100644 --- a/sdk/translation/Azure.AI.Translation.Text/src/Generated/TransliterableScript.cs +++ b/sdk/translation/Azure.AI.Translation.Text/src/Generated/TransliterableScript.cs @@ -18,29 +18,29 @@ public partial class TransliterableScript : LanguageScript /// Code identifying the script. /// Display name of the script in the locale requested via Accept-Language header. /// Display name of the language in the locale native for the language. - /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. - /// List of scripts available to convert text to. - /// , , or is null. - internal TransliterableScript(string code, string name, string nativeName, LanguageDirectionality directionality, IEnumerable targetLanguageScripts) : base(code, name, nativeName, directionality) + /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. + /// List of scripts available to convert text to. + /// , , or is null. + internal TransliterableScript(string code, string name, string nativeName, LanguageDirectionality dir, IEnumerable toScripts) : base(code, name, nativeName, dir) { Argument.AssertNotNull(code, nameof(code)); Argument.AssertNotNull(name, nameof(name)); Argument.AssertNotNull(nativeName, nameof(nativeName)); - Argument.AssertNotNull(targetLanguageScripts, nameof(targetLanguageScripts)); + Argument.AssertNotNull(toScripts, nameof(toScripts)); - TargetLanguageScripts = targetLanguageScripts.ToList(); + ToScripts = toScripts.ToList(); } /// Initializes a new instance of . /// Code identifying the script. /// Display name of the script in the locale requested via Accept-Language header. /// Display name of the language in the locale native for the language. - /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. + /// Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages. /// Keeps track of any properties unknown to the library. - /// List of scripts available to convert text to. - internal TransliterableScript(string code, string name, string nativeName, LanguageDirectionality directionality, IDictionary serializedAdditionalRawData, IReadOnlyList targetLanguageScripts) : base(code, name, nativeName, directionality, serializedAdditionalRawData) + /// List of scripts available to convert text to. + internal TransliterableScript(string code, string name, string nativeName, LanguageDirectionality dir, IDictionary serializedAdditionalRawData, IReadOnlyList toScripts) : base(code, name, nativeName, dir, serializedAdditionalRawData) { - TargetLanguageScripts = targetLanguageScripts; + ToScripts = toScripts; } /// Initializes a new instance of for deserialization. @@ -49,6 +49,6 @@ internal TransliterableScript() } /// List of scripts available to convert text to. - public IReadOnlyList TargetLanguageScripts { get; } + public IReadOnlyList ToScripts { get; } } } diff --git a/sdk/translation/Azure.AI.Translation.Text/tsp-location.yaml b/sdk/translation/Azure.AI.Translation.Text/tsp-location.yaml index da41a8211de5..84b1a72b3c1a 100644 --- a/sdk/translation/Azure.AI.Translation.Text/tsp-location.yaml +++ b/sdk/translation/Azure.AI.Translation.Text/tsp-location.yaml @@ -1,3 +1,4 @@ directory: specification/translation/Azure.AI.TextTranslation -commit: cc6917418740a76c0c1b5be595a89f279df73bf6 +commit: 27a6a18feb693251ea80d1894f77fe8c0fdce06a repo: Azure/azure-rest-api-specs +additionalDirectories: