diff --git a/specification/servicelinker/ServiceLinker.Management/DryrunResource.tsp b/specification/servicelinker/ServiceLinker.Management/DryrunResource.tsp new file mode 100644 index 000000000000..ed7f3819e391 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/DryrunResource.tsp @@ -0,0 +1,130 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; + +namespace Microsoft.ServiceLinker; +/** + * a dryrun job resource + */ +model DryrunResource + is Azure.ResourceManager.ExtensionResource { + ...ResourceNameParameter< + Resource = DryrunResource, + KeyName = "dryrunName", + SegmentName = "dryruns", + NamePattern = "" + >; +} + +@armResourceOperations +interface DryrunResourceOps + extends Azure.ResourceManager.Legacy.LegacyOperations< + { + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + ...LocationParameter, + }, + KeysOf> + > {} + +@armResourceOperations +interface DryrunResources { + /** + * get a dryrun job + */ + getDryrun is DryrunResourceOps.Read; + + /** + * create a dryrun job to do necessary check before actual creation + */ + createDryrun is DryrunResourceOps.CreateOrUpdateAsync; + + /** + * update a dryrun job to do necessary check before actual creation + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @patch(#{ implicitOptionality: false }) + updateDryrun is DryrunResourceOps.CustomPatchAsync< + DryrunResource, + PatchModel = DryrunPatch, + Response = ArmResourceUpdatedResponse | ArmAcceptedLroResponse> + >; + + /** + * delete a dryrun job + */ + deleteDryrun is DryrunResourceOps.DeleteSync; + + /** + * list dryrun jobs + */ + listDryrun is DryrunResourceOps.List< + DryrunResource, + Response = ArmResponse + >; +} + +@armResourceOperations +interface Linkers { + /** + * get a dryrun job + */ + getDryrun is Extension.Read; + + /** + * create a dryrun job to do necessary check before actual creation + */ + createDryrun is Extension.CreateOrUpdateAsync< + Extension.ScopeParameter, + DryrunResource + >; + + /** + * add a dryrun job to do necessary check before actual creation + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @patch(#{ implicitOptionality: false }) + updateDryrun is Extension.CustomPatchAsync< + Extension.ScopeParameter, + DryrunResource, + PatchModel = DryrunPatch, + Response = ArmResourceUpdatedResponse | ArmAcceptedLroResponse> + >; + + /** + * delete a dryrun job + */ + deleteDryrun is Extension.DeleteSync< + Extension.ScopeParameter, + DryrunResource + >; + + /** + * list dryrun jobs + */ + listDryrun is Extension.ListByTarget< + Extension.ScopeParameter, + DryrunResource, + Response = ArmResponse + >; +} + +@@doc(DryrunResource.name, "The name of dryrun."); +@@doc(DryrunResource.properties, "The properties of the dryrun job."); +@@doc(DryrunResources.createDryrun::parameters.resource, "dryrun resource."); +@@doc(DryrunResources.updateDryrun::parameters.properties, "dryrun resource."); +@@doc(Linkers.createDryrun::parameters.resource, "dryrun resource."); +@@doc(Linkers.updateDryrun::parameters.properties, "dryrun resource."); diff --git a/specification/servicelinker/ServiceLinker.Management/LinkerResource.tsp b/specification/servicelinker/ServiceLinker.Management/LinkerResource.tsp new file mode 100644 index 000000000000..a07e3520eedb --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/LinkerResource.tsp @@ -0,0 +1,205 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; + +namespace Microsoft.ServiceLinker; +/** + * Linker of source and target resource + */ +model LinkerResource + is Azure.ResourceManager.ExtensionResource { + ...ResourceNameParameter< + Resource = LinkerResource, + KeyName = "linkerName", + SegmentName = "linkers", + NamePattern = "" + >; +} + +@armResourceOperations +interface LinkerResourceOps + extends Azure.ResourceManager.Legacy.LegacyOperations< + { + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + ...LocationParameter, + }, + KeysOf> + > {} + +@armResourceOperations +interface LinkerResources { + /** + * Returns Connector resource for a given name. + */ + get is LinkerResourceOps.Read; + + /** + * Create or update Connector resource. + */ + createOrUpdate is LinkerResourceOps.CreateOrUpdateAsync; + /** + * Operation to update an existing Connector. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @patch(#{ implicitOptionality: false }) + update is LinkerResourceOps.CustomPatchAsync< + LinkerResource, + PatchModel = LinkerPatch, + Response = ArmResponse | (ArmAcceptedLroResponse> & { + @bodyRoot + _: LinkerResource; + }) + >; + + /** + * Delete a Connector. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is LinkerResourceOps.DeleteWithoutOkAsync< + LinkerResource, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * Returns list of connector which connects to the resource, which supports to config the target service during the resource provision. + */ + list is LinkerResourceOps.List< + LinkerResource, + Response = ArmResponse + >; + + /** + * Validate a Connector. + */ + validate is LinkerResourceOps.ActionAsync< + LinkerResource, + void, + ValidateOperationResult + >; + + /** + * Generate configurations for a Connector. + */ + generateConfigurations is LinkerResourceOps.ActionSync< + LinkerResource, + ConfigurationInfo, + ArmResponse, + OptionalRequestBody = true + >; +} + +@armResourceOperations +interface Linker { + /** + * Returns Linker resource for a given name. + */ + get is Extension.Read; + + /** + * Create or update Linker resource. + */ + createOrUpdate is Extension.CreateOrUpdateAsync< + Extension.ScopeParameter, + LinkerResource + >; + + /** + * Operation to update an existing Linker. + */ + @patch(#{ implicitOptionality: false }) + update is Extension.CustomPatchAsync< + Extension.ScopeParameter, + LinkerResource, + PatchModel = LinkerPatch, + Response = ArmResponse | ArmResourceCreatedResponse< + LinkerResource, + LroHeaders = ArmAsyncOperationHeader + > + >; + + /** + * Delete a Linker. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is Extension.DeleteWithoutOkAsync< + Extension.ScopeParameter, + LinkerResource, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * Returns list of Linkers which connects to the resource. which supports to config both application and target service during the resource provision. + */ + @segment("linkers") + list is Extension.ListByTarget< + Extension.ScopeParameter, + LinkerResource, + Response = ArmResponse + >; + + /** + * Validate a Linker. + */ + @action("validateLinker") + validate is Extension.ActionAsync< + Extension.ScopeParameter, + LinkerResource, + void, + ValidateOperationResult + >; + + /** + * list source configurations for a Linker. + */ + listConfigurations is Extension.ActionSync< + Extension.ScopeParameter, + LinkerResource, + void, + ArmResponse + >; + + /** + * Generate configurations for a Linker. + */ + generateConfigurations is Extension.ActionSync< + Extension.ScopeParameter, + LinkerResource, + ConfigurationInfo, + ArmResponse, + OptionalRequestBody = true + >; +} + +@@doc(LinkerResource.name, "The name Linker resource."); +@@doc(LinkerResource.properties, "The properties of the Linker."); +@@doc(LinkerResources.createOrUpdate::parameters.resource, + "Connector details." +); +@@doc(LinkerResources.update::parameters.properties, "Connector details."); +@@doc(Linker.createOrUpdate::parameters.resource, "Linker details."); +@@doc(Linker.update::parameters.properties, "Linker details."); +@@doc(LinkerResources.generateConfigurations::parameters.body, + "Connection Info, including format, secret store, etc" +); +@@doc(Linker.generateConfigurations::parameters.body, + "Connection Info, including format, secret store, etc" +); diff --git a/specification/servicelinker/ServiceLinker.Management/back-compatible.tsp b/specification/servicelinker/ServiceLinker.Management/back-compatible.tsp new file mode 100644 index 000000000000..af3b43414325 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/back-compatible.tsp @@ -0,0 +1,336 @@ +import "@azure-tools/typespec-client-generator-core"; +import "@typespec/rest"; +import "@typespec/http"; + +using Azure.ClientGenerator.Core; +using Microsoft.ServiceLinker; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.Versioning; + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(DryrunPatch.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(LinkerPatch.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(ValidateOperationResult.properties +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(ConfigurationNameItem.properties +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(DaprConfigurationResource.properties +); + +@@clientName(DryrunResources.createDryrun::parameters.resource, "parameters"); +@@clientName(DryrunResources.updateDryrun::parameters.properties, "parameters"); +@@clientName(Linkers.createDryrun::parameters.resource, "parameters"); +@@clientName(Linkers.updateDryrun::parameters.properties, "parameters"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(DryrunResource.properties); + +@@clientName(LinkerResources.createOrUpdate::parameters.resource, "parameters"); +@@clientName(LinkerResources.update::parameters.properties, "parameters"); +@@clientName(Linker.createOrUpdate::parameters.resource, "parameters"); +@@clientName(Linker.update::parameters.properties, "parameters"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(LinkerResource.properties); + +// @@clientLocation decorators for operations with custom @operationId +// These ensure consistent operationId generation in the output + +// LinkerResources interface operations with Connector_ prefix +@@clientLocation(LinkerResources.get, "Connector"); +@@clientName(LinkerResources.get, "Get"); +@@clientLocation(LinkerResources.createOrUpdate, "Connector"); +@@clientName(LinkerResources.createOrUpdate, "CreateOrUpdate"); +@@clientLocation(LinkerResources.update, "Connector"); +@@clientName(LinkerResources.update, "Update"); +@@clientLocation(LinkerResources.delete, "Connector"); +@@clientName(LinkerResources.delete, "Delete"); +@@clientLocation(LinkerResources.list, "Connector"); +@@clientName(LinkerResources.list, "List"); +@@clientLocation(LinkerResources.validate, "Connector"); +@@clientName(LinkerResources.validate, "Validate"); +@@clientLocation(LinkerResources.generateConfigurations, "Connector"); +@@clientName(LinkerResources.generateConfigurations, "GenerateConfigurations"); + +// DryrunResources interface operations with Connector_ prefix +@@clientLocation(DryrunResources.getDryrun, "Connector"); +@@clientName(DryrunResources.getDryrun, "GetDryrun"); +@@clientLocation(DryrunResources.createDryrun, "Connector"); +@@clientName(DryrunResources.createDryrun, "CreateDryrun"); +@@clientLocation(DryrunResources.updateDryrun, "Connector"); +@@clientName(DryrunResources.updateDryrun, "UpdateDryrun"); +@@clientLocation(DryrunResources.deleteDryrun, "Connector"); +@@clientName(DryrunResources.deleteDryrun, "DeleteDryrun"); +@@clientLocation(DryrunResources.listDryrun, "Connector"); +@@clientName(DryrunResources.listDryrun, "ListDryrun"); + +// Linker interface operations with Linkers_ prefix +@@clientLocation(Linker.generateConfigurations, Linkers); +@@clientName(Linker.generateConfigurations, "GenerateConfigurations"); + +// LinkersOperationGroup operations with Linkers_ prefix +@@clientLocation(LinkersOperationGroup.listDaprConfigurations, Linkers); +@@clientName(LinkersOperationGroup.listDaprConfigurations, + "ListDaprConfigurations" +); + +// ConfigurationNamesOperationGroup operations with ConfigurationNames_ prefix +@@clientLocation(ConfigurationNamesOperationGroup.list, "ConfigurationNames"); +@@clientName(ConfigurationNamesOperationGroup.list, "List"); +@@clientName(LinkerResources.generateConfigurations::parameters.body, + "parameters" +); +@@clientName(Linker.generateConfigurations::parameters.body, "parameters"); + +@@doc(Azure.ResourceManager.Extension.ScopeParameter.scope, + "The fully qualified Azure Resource manager identifier of the resource to be connected." +); +@@key(Azure.ResourceManager.Extension.ScopeParameter.scope, "resourceUri"); + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +op linkerResourcesGet( + ...ApiVersionParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + @clientLocation(linkerResourcesGet, "java,python,go,javascript") + @typeChangedFrom(Azure.ResourceManager.CommonTypes.Versions.v4, string) + subscriptionId: Azure.Core.uuid, + + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + ...LocationParameter, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + connectorName: string, +): LinkerResource; + +@@override(LinkerResources.get, linkerResourcesGet); + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +op linkerResourcesCreateOrUpdate( + ...ApiVersionParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + @clientLocation(linkerResourcesCreateOrUpdate, "java,python,go,javascript") + @typeChangedFrom(Azure.ResourceManager.CommonTypes.Versions.v4, string) + subscriptionId: Azure.Core.uuid, + + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + ...LocationParameter, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + connectorName: string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + resource: LinkerResource, +): LinkerResource; + +@@override(LinkerResources.createOrUpdate, linkerResourcesCreateOrUpdate); + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +op linkerResourcesUpdate( + ...ApiVersionParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + @clientLocation(linkerResourcesUpdate, "java,python,go,javascript") + @typeChangedFrom(Azure.ResourceManager.CommonTypes.Versions.v4, string) + subscriptionId: Azure.Core.uuid, + + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + ...LocationParameter, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + connectorName: string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + properties: LinkerPatch, +): LinkerResource; + +@@override(LinkerResources.update, linkerResourcesUpdate); + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +op linkerResourcesDelete( + ...ApiVersionParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + @clientLocation(linkerResourcesDelete, "java,python,go,javascript") + @typeChangedFrom(Azure.ResourceManager.CommonTypes.Versions.v4, string) + subscriptionId: Azure.Core.uuid, + + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + ...LocationParameter, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + connectorName: string, +): ArmDeletedNoContentResponse; + +@@override(LinkerResources.delete, linkerResourcesDelete); + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +op linkerResourcesList( + ...ApiVersionParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + @clientLocation(linkerResourcesList, "java,python,go,javascript") + @typeChangedFrom(Azure.ResourceManager.CommonTypes.Versions.v4, string) + subscriptionId: Azure.Core.uuid, + + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + ...LocationParameter, +): ResourceList; + +@@override(LinkerResources.list, linkerResourcesList); + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +op linkerResourcesValidate( + ...ApiVersionParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + @clientLocation(linkerResourcesValidate, "java,python,go,javascript") + @typeChangedFrom(Azure.ResourceManager.CommonTypes.Versions.v4, string) + subscriptionId: Azure.Core.uuid, + + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + ...LocationParameter, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + connectorName: string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + body: void, +): ValidateOperationResult; + +@@override(LinkerResources.validate, linkerResourcesValidate); + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +op linkerResourcesGenerateConfigurations( + ...ApiVersionParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + @clientLocation( + linkerResourcesGenerateConfigurations, + "java,python,go,javascript" + ) + @typeChangedFrom(Azure.ResourceManager.CommonTypes.Versions.v4, string) + subscriptionId: Azure.Core.uuid, + + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + ...LocationParameter, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + connectorName: string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + body?: ConfigurationInfo, +): ConfigurationResult; + +@@override(LinkerResources.generateConfigurations, + linkerResourcesGenerateConfigurations +); + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +op dryrunResourcesGetDryrun( + ...ApiVersionParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + @clientLocation(dryrunResourcesGetDryrun, "java,python,go,javascript") + @typeChangedFrom(Azure.ResourceManager.CommonTypes.Versions.v4, string) + subscriptionId: Azure.Core.uuid, + + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + ...LocationParameter, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + dryrunName: string, +): DryrunResource; + +@@override(DryrunResources.getDryrun, dryrunResourcesGetDryrun); + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +op dryrunResourcesCreateDryrun( + ...ApiVersionParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + @clientLocation(dryrunResourcesCreateDryrun, "java,python,go,javascript") + @typeChangedFrom(Azure.ResourceManager.CommonTypes.Versions.v4, string) + subscriptionId: Azure.Core.uuid, + + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + ...LocationParameter, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + dryrunName: string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + @body resource: DryrunResource, +): DryrunResource; + +@@override(DryrunResources.createDryrun, dryrunResourcesCreateDryrun); + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +op dryrunResourcesUpdateDryrun( + ...ApiVersionParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + @clientLocation(dryrunResourcesUpdateDryrun, "java,python,go,javascript") + @typeChangedFrom(Azure.ResourceManager.CommonTypes.Versions.v4, string) + subscriptionId: Azure.Core.uuid, + + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + ...LocationParameter, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + dryrunName: string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + @body properties: DryrunPatch, +): DryrunResource; + +@@override(DryrunResources.updateDryrun, dryrunResourcesUpdateDryrun); + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +op dryrunResourcesDeleteDryrun( + ...ApiVersionParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + @clientLocation(dryrunResourcesDeleteDryrun, "java,python,go,javascript") + @typeChangedFrom(Azure.ResourceManager.CommonTypes.Versions.v4, string) + subscriptionId: Azure.Core.uuid, + + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + ...LocationParameter, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + dryrunName: string, +): ArmDeletedResponse; + +@@override(DryrunResources.deleteDryrun, dryrunResourcesDeleteDryrun); + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +op dryrunResourcesListDryrun( + ...ApiVersionParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "customization" + @clientLocation(dryrunResourcesListDryrun, "java,python,go,javascript") + @typeChangedFrom(Azure.ResourceManager.CommonTypes.Versions.v4, string) + subscriptionId: Azure.Core.uuid, + + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + ...LocationParameter, +): DryrunList; + +@@override(DryrunResources.listDryrun, dryrunResourcesListDryrun); diff --git a/specification/servicelinker/ServiceLinker.Management/client.tsp b/specification/servicelinker/ServiceLinker.Management/client.tsp new file mode 100644 index 000000000000..8b34b6f23bb1 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/client.tsp @@ -0,0 +1,20 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using Microsoft.ServiceLinker; + +@@clientName(Linkers, "LinkersOperations", "java"); +@@clientName(Microsoft.ServiceLinker, + "ServiceLinkerManagementClient", + "javascript" +); +@@clientName(Microsoft.ServiceLinker, + "ServiceLinkerManagementClient", + "python" +); + +// Go SDK Breaking Changes Resolution for TypeSpec conversion +@@clientName(DatabaseAadAuthInfo, "DatabaseAADAuthInfo", "go"); + +@@clientName(ActionType, "ActionTypeFlag"); diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConfigurationNamesList.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConfigurationNamesList.json new file mode 100644 index 000000000000..60d23198eeb0 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConfigurationNamesList.json @@ -0,0 +1,54 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview" + }, + "responses": { + "200": { + "body": { + "nextLink": null, + "value": [ + { + "properties": { + "authType": "systemAssignedIdentity", + "clientType": "none", + "names": [ + { + "description": "App configuration endpoint", + "value": "AZURE_APPCONFIGURATION_ENDPOINT" + }, + { + "description": "The scopes required for the token.", + "value": "AZURE_APPCONFIGURATION_SCOPE" + } + ], + "targetService": "MICROSOFT.APPCONFIGURATION/CONFIGURATIONSTORES" + } + }, + { + "properties": { + "authType": "userAssignedIdentity", + "clientType": "none", + "names": [ + { + "description": "App configuration endpoint", + "value": "AZURE_APPCONFIGURATION_ENDPOINT" + }, + { + "description": "The client(application) ID of the user identity.", + "value": "AZURE_APPCONFIGURATION_CLIENTID" + }, + { + "description": "The scopes required for getting token.", + "value": "AZURE_APPCONFIGURATION_SCOPE" + } + ], + "targetService": "MICROSOFT.APPCONFIGURATION/CONFIGURATIONSTORES" + } + } + ] + } + } + }, + "operationId": "ConfigurationNames_List", + "title": "GetConfigurationNames" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorDryrunCreate.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorDryrunCreate.json new file mode 100644 index 000000000000..0346c23cc778 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorDryrunCreate.json @@ -0,0 +1,118 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "dryrunName": "dryrunName", + "location": "westus", + "parameters": { + "properties": { + "parameters": { + "actionName": "createOrUpdate", + "authInfo": { + "name": "name", + "authType": "secret", + "secretInfo": { + "secretType": "rawValue", + "value": "secret" + } + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + } + } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "dryrunName", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ServiceLinker/locations/westus/dryruns/dryrunName", + "properties": { + "operationPreviews": [ + { + "name": "configFirewallRule", + "description": "Config firewall rule for target service to allow source service access", + "action": "Microsoft.DocumentDb/databaseAccounts/write", + "operationType": "configNetwork", + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], + "parameters": { + "actionName": "createOrUpdate", + "authInfo": { + "name": "name", + "authType": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + }, + "prerequisiteResults": [ + { + "type": "basicError", + "code": "ResourceNotFound", + "message": "Target resource is not found" + }, + { + "type": "permissionsMissing", + "permissions": [ + "Microsoft.DocumentDb/databaseAccounts/write" + ], + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], + "provisioningState": "Succeeded" + } + } + }, + "201": { + "body": { + "name": "dryrunName", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ServiceLinker/locations/westus/dryruns/dryrunName", + "properties": { + "operationPreviews": [ + { + "name": "configFirewallRule", + "description": "Config firewall rule for target service to allow source service access", + "action": "Microsoft.DocumentDb/databaseAccounts/write", + "operationType": "configNetwork", + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], + "parameters": { + "actionName": "createOrUpdate", + "authInfo": { + "name": "name", + "authType": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + }, + "prerequisiteResults": [ + { + "type": "basicError", + "code": "ResourceNotFound", + "message": "Target resource is not found" + }, + { + "type": "permissionsMissing", + "permissions": [ + "Microsoft.DocumentDb/databaseAccounts/write" + ], + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], + "provisioningState": "Accepted" + } + } + } + }, + "operationId": "Connector_CreateDryrun", + "title": "ConnectorDryrunCreate" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorDryrunDelete.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorDryrunDelete.json new file mode 100644 index 000000000000..ea7e371c8758 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorDryrunDelete.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "dryrunName": "dryrunName", + "location": "westus", + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "Connector_DeleteDryrun", + "title": "ConnectorDryrunDelete" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorDryrunGet.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorDryrunGet.json new file mode 100644 index 000000000000..3fb1c39a1bd8 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorDryrunGet.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "dryrunName": "dryrunName", + "location": "westus", + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "dryrunName", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ServiceLinker/locations/westus/dryruns/dryrunName", + "properties": { + "parameters": { + "actionName": "createOrUpdate", + "authInfo": { + "name": "username", + "authType": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + } + }, + "systemData": { + "createdAt": "2020-07-12T22:05:09Z" + } + } + } + }, + "operationId": "Connector_GetDryrun", + "title": "ConnectorDryrunGet" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorDryrunList.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorDryrunList.json new file mode 100644 index 000000000000..f7334b46b551 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorDryrunList.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "location": "westus", + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "dryrunName", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ServiceLinker/locations/westus/dryruns/dryrunName", + "properties": { + "parameters": { + "actionName": "createOrUpdate", + "authInfo": { + "name": "username", + "authType": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + } + }, + "systemData": { + "createdAt": "2020-07-12T22:05:09Z" + } + } + ] + } + } + }, + "operationId": "Connector_ListDryrun", + "title": "ConnectorDryrunList" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorDryrunUpdate.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorDryrunUpdate.json new file mode 100644 index 000000000000..a578b7253f90 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorDryrunUpdate.json @@ -0,0 +1,80 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "dryrunName": "dryrunName", + "location": "westus", + "parameters": { + "properties": { + "parameters": { + "actionName": "createOrUpdate", + "authInfo": { + "name": "name", + "authType": "secret", + "secretInfo": { + "secretType": "rawValue", + "value": "secret" + } + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + } + } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "dryrunName", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ServiceLinker/locations/westus/dryruns/dryrunName", + "properties": { + "operationPreviews": [ + { + "name": "configFirewallRule", + "description": "Config firewall rule for target service to allow source service access", + "action": "Microsoft.DocumentDb/databaseAccounts/write", + "operationType": "configNetwork", + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], + "parameters": { + "actionName": "createOrUpdate", + "authInfo": { + "name": "name", + "authType": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + }, + "prerequisiteResults": [ + { + "type": "basicError", + "code": "ResourceNotFound", + "message": "Target resource is not found" + }, + { + "type": "permissionsMissing", + "permissions": [ + "Microsoft.DocumentDb/databaseAccounts/write" + ], + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], + "provisioningState": "Succeeded" + } + } + }, + "202": { + "headers": { + "azure-AsyncOperation": "http://azure.async.operation/status" + } + } + }, + "operationId": "Connector_UpdateDryrun", + "title": "ConnectorDryrunUpdate" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorList.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorList.json new file mode 100644 index 000000000000..f517a1d3f1aa --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ConnectorList.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "location": "westus", + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "linkName", + "type": "Microsoft.ServiceLinker/devConnectors", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ServiceLinker/linkers/linkName", + "properties": { + "authInfo": { + "name": "username", + "authType": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + }, + "systemData": { + "createdAt": "2020-07-12T22:05:09Z" + } + } + ] + } + } + }, + "operationId": "Connector_List", + "title": "ConnectorList" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/Connectors.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/Connectors.json new file mode 100644 index 000000000000..83de11414221 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/Connectors.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "connectorName": "connectorName", + "location": "westus", + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "linkName", + "type": "Microsoft.ServiceLinker/devConnectors", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ServiceLinker/devConnnectors/linkName", + "properties": { + "authInfo": { + "authType": "systemAssignedIdentity", + "roles": [ + "customizedOwner" + ] + }, + "publicNetworkSolution": { + "action": "enable", + "deleteOrUpdateBehavior": "ForcedCleanup", + "firewallRules": { + "callerClientIP": "true", + "ipRanges": [ + "182.22.120" + ] + } + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + }, + "systemData": { + "createdAt": "2020-07-12T22:05:09Z" + } + } + } + }, + "operationId": "Connector_Get", + "title": "Connector" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/DeleteConnector.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/DeleteConnector.json new file mode 100644 index 000000000000..de50de9a9ff4 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/DeleteConnector.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "connectorName": "connectorName", + "location": "westus", + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "azure-AsyncOperation": "http://azure.async.operation/status" + } + }, + "204": {} + }, + "operationId": "Connector_Delete", + "title": "DeleteConnector" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/DeleteDryrun.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/DeleteDryrun.json new file mode 100644 index 000000000000..c99e971c5f16 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/DeleteDryrun.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "dryrunName": "dryrunName", + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "Linkers_DeleteDryrun", + "title": "DeleteDryrun" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/DeleteLinker.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/DeleteLinker.json new file mode 100644 index 000000000000..1790418daf0c --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/DeleteLinker.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "linkerName": "linkName", + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "azure-AsyncOperation": "http://azure.async.operation/status" + } + }, + "204": {} + }, + "operationId": "Linker_Delete", + "title": "DeleteLinker" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/GenerateConfigurations.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/GenerateConfigurations.json new file mode 100644 index 000000000000..6d20f473edc9 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/GenerateConfigurations.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "connectorName": "connectorName", + "location": "westus", + "parameters": { + "customizedKeys": { + "ASL_DocumentDb_ConnectionString": "MyConnectionstring" + } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "configurations": [ + { + "name": "MyConnectionstring", + "value": "ConnectionString" + } + ] + } + } + }, + "operationId": "Connector_GenerateConfigurations", + "title": "GenerateConfiguration" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/GetConfigurations.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/GetConfigurations.json new file mode 100644 index 000000000000..616117992689 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/GetConfigurations.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "linkerName": "linkName", + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.App/containerApps/test-app" + }, + "responses": { + "200": { + "body": { + "configurations": [ + { + "name": "AZURE_POSTGRESQL_HOST", + "configType": "Default", + "value": "Host" + }, + { + "name": "AZURE_POSTGRESQL_USER", + "configType": "Default", + "value": "Username" + }, + { + "name": "AZURE_POSTGRESQL_DATABASE", + "configType": "Default", + "value": "DatabaseName" + }, + { + "name": "AZURE_POSTGRESQL_PORT", + "configType": "Default", + "value": "Port" + }, + { + "name": "AZURE_POSTGRESQL_PASSWORD", + "configType": "KeyVaultSecret", + "keyVaultReferenceIdentity": "system", + "value": "SecretUri" + } + ] + } + } + }, + "operationId": "Linker_ListConfigurations", + "title": "GetConfiguration" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/GetDaprConfigurations.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/GetDaprConfigurations.json new file mode 100644 index 000000000000..1da585d90c35 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/GetDaprConfigurations.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "authType": "secret", + "daprProperties": { + "bindingComponentDirection": "input", + "componentType": "bindings", + "metadata": [ + { + "name": "containerName", + "description": "The name of the container to be used for Dapr state.", + "required": "true" + } + ], + "runtimeVersion": "1.10", + "version": "v1" + }, + "targetType": "MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES" + } + } + ] + } + } + }, + "operationId": "Linkers_ListDaprConfigurations", + "title": "GetDaprConfigurations" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/GetDryrun.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/GetDryrun.json new file mode 100644 index 000000000000..cbc968892334 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/GetDryrun.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "dryrunName": "dryrunName", + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" + }, + "responses": { + "200": { + "body": { + "name": "dryrunName", + "type": "Microsoft.ServiceLinker/dryruns", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/dryruns/dryrunName", + "properties": { + "parameters": { + "actionName": "createOrUpdate", + "authInfo": { + "name": "username", + "authType": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + } + }, + "systemData": { + "createdAt": "2020-07-12T22:05:09Z" + } + } + } + }, + "operationId": "Linkers_GetDryrun", + "title": "GetDryrun" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/Linker.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/Linker.json new file mode 100644 index 000000000000..bcd55b38ee7d --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/Linker.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "linkerName": "linkName", + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" + }, + "responses": { + "200": { + "body": { + "name": "linkName", + "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", + "properties": { + "authInfo": { + "name": "name", + "authType": "secret" + }, + "clientType": "dotnet", + "configurationInfo": { + "additionalConfigurations": { + "throttlingLimit": "100" + }, + "customizedKeys": { + "AZURE_MYSQL_CONNECTIONSTRING": "myConnectionstring", + "AZURE_MYSQL_SSLMODE": "mySslmode" + }, + "deleteOrUpdateBehavior": "ForcedCleanup" + }, + "publicNetworkSolution": { + "action": "enable" + }, + "scope": "AKS-Namespace", + "secretStore": { + "keyVaultId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/kvname" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + }, + "systemData": { + "createdAt": "2020-07-12T22:05:09Z" + } + } + } + }, + "operationId": "Linker_Get", + "title": "Linker" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/LinkerGenerateConfigurations.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/LinkerGenerateConfigurations.json new file mode 100644 index 000000000000..0d2b2d1a745e --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/LinkerGenerateConfigurations.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "linkerName": "linkName", + "parameters": { + "customizedKeys": { + "ASL_DocumentDb_ConnectionString": "MyConnectionstring" + } + }, + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" + }, + "responses": { + "200": { + "body": { + "configurations": [ + { + "name": "MyConnectionstring", + "value": "ConnectionString" + } + ] + } + } + }, + "operationId": "Linkers_GenerateConfigurations", + "title": "GenerateConfiguration" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/LinkerList.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/LinkerList.json new file mode 100644 index 000000000000..3a2ee5935b7a --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/LinkerList.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "linkName", + "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ServiceLinker/links/linkName", + "properties": { + "authInfo": { + "name": "username", + "authType": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + }, + "systemData": { + "createdAt": "2020-07-12T22:05:09Z" + } + } + ] + } + } + }, + "operationId": "Linker_List", + "title": "LinkerList" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ListDryrun.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ListDryrun.json new file mode 100644 index 000000000000..1d51ab23bccc --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ListDryrun.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "dryrunName", + "type": "Microsoft.ServiceLinker/dryruns", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/dryruns/dryrunName", + "properties": { + "parameters": { + "actionName": "createOrUpdate", + "authInfo": { + "name": "username", + "authType": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + } + }, + "systemData": { + "createdAt": "2020-07-12T22:05:09Z" + } + } + ] + } + } + }, + "operationId": "Linkers_ListDryrun", + "title": "ListDryrun" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/OperationsList.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/OperationsList.json new file mode 100644 index 000000000000..8e7c1d847200 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/OperationsList.json @@ -0,0 +1,186 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.ServiceLinker/register/action", + "display": { + "description": "Register the subscription for Microsoft.ServiceLinker", + "operation": "Register the Microsoft.ServiceLinker", + "provider": "Microsoft.ServiceLinker", + "resource": "Microsoft.ServiceLinker" + }, + "isDataAction": false + }, + { + "name": "Microsoft.ServiceLinker/unregister/action", + "display": { + "description": "Unregister the subscription for Microsoft.ServiceLinker", + "operation": "Unregister the Microsoft.ServiceLinker", + "provider": "Microsoft.ServiceLinker", + "resource": "Microsoft.ServiceLinker" + }, + "isDataAction": false + }, + { + "name": "Microsoft.ServiceLinker/operations/read", + "display": { + "description": "read operations", + "operation": "read_operations", + "provider": "Microsoft.ServiceLinker", + "resource": "operations" + }, + "isDataAction": false + }, + { + "name": "Microsoft.ServiceLinker/dryruns/read", + "display": { + "description": "list dryrun jobs", + "operation": "Dryrun_List", + "provider": "Microsoft.ServiceLinker", + "resource": "dryruns" + }, + "isDataAction": false + }, + { + "name": "Microsoft.ServiceLinker/dryruns/read", + "display": { + "description": "get a dryrun job", + "operation": "Dryrun_Get", + "provider": "Microsoft.ServiceLinker", + "resource": "dryruns" + }, + "isDataAction": false + }, + { + "name": "Microsoft.ServiceLinker/dryruns/write", + "display": { + "description": "create a dryrun job to do necessary check before actual creation", + "operation": "Dryrun_Create", + "provider": "Microsoft.ServiceLinker", + "resource": "dryruns" + }, + "isDataAction": false + }, + { + "name": "Microsoft.ServiceLinker/dryruns/delete", + "display": { + "description": "delete a dryrun job", + "operation": "Dryrun_Delete", + "provider": "Microsoft.ServiceLinker", + "resource": "dryruns" + }, + "isDataAction": false + }, + { + "name": "Microsoft.ServiceLinker/dryruns/write", + "display": { + "description": "add a dryrun job to do necessary check before actual creation", + "operation": "Dryrun_Update", + "provider": "Microsoft.ServiceLinker", + "resource": "dryruns" + }, + "isDataAction": false + }, + { + "name": "Microsoft.ServiceLinker/locations/operationStatuses/read", + "display": { + "description": "read operationStatuses", + "operation": "read_operationStatuses", + "provider": "Microsoft.ServiceLinker", + "resource": "locations/operationStatuses" + }, + "isDataAction": false + }, + { + "name": "Microsoft.ServiceLinker/locations/operationStatuses/write", + "display": { + "description": "write operationStatuses", + "operation": "write_operationStatuses", + "provider": "Microsoft.ServiceLinker", + "resource": "locations/operationStatuses" + }, + "isDataAction": false + }, + { + "name": "Microsoft.ServiceLinker/linkers/read", + "display": { + "description": "Returns list of Linkers which connects to the resource.", + "operation": "Linker_List", + "provider": "Microsoft.ServiceLinker", + "resource": "linkers" + }, + "isDataAction": false + }, + { + "name": "Microsoft.ServiceLinker/linkers/read", + "display": { + "description": "Returns Linker resource for a given name.", + "operation": "Linker_Get", + "provider": "Microsoft.ServiceLinker", + "resource": "linkers" + }, + "isDataAction": false + }, + { + "name": "Microsoft.ServiceLinker/linkers/write", + "display": { + "description": "Create or update linker resource.", + "operation": "Linker_CreateOrUpdate", + "provider": "Microsoft.ServiceLinker", + "resource": "linkers" + }, + "isDataAction": false + }, + { + "name": "Microsoft.ServiceLinker/linkers/delete", + "display": { + "description": "Delete a link.", + "operation": "Linker_Delete", + "provider": "Microsoft.ServiceLinker", + "resource": "linkers" + }, + "isDataAction": false + }, + { + "name": "Microsoft.ServiceLinker/linkers/write", + "display": { + "description": "Operation to update an existing link.", + "operation": "Linker_Update", + "provider": "Microsoft.ServiceLinker", + "resource": "linkers" + }, + "isDataAction": false + }, + { + "name": "Microsoft.ServiceLinker/linkers/validateLinker/action", + "display": { + "description": "Validate a link.", + "operation": "Linker_Validate", + "provider": "Microsoft.ServiceLinker", + "resource": "linkers" + }, + "isDataAction": false + }, + { + "name": "Microsoft.ServiceLinker/linkers/listConfigurations/action", + "display": { + "description": "list source configurations for a linker.", + "operation": "Linker_ListConfigurations", + "provider": "Microsoft.ServiceLinker", + "resource": "linkers" + }, + "isDataAction": false + } + ] + } + } + }, + "operationId": "Operations_List", + "title": "GetConfiguration" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PatchConnector.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PatchConnector.json new file mode 100644 index 000000000000..ea476508fcdd --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PatchConnector.json @@ -0,0 +1,66 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "connectorName": "connectorName", + "location": "westus", + "parameters": { + "properties": { + "authInfo": { + "authType": "servicePrincipalSecret", + "clientId": "name", + "principalId": "id", + "secret": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "linkName", + "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", + "properties": { + "authInfo": { + "authType": "servicePrincipalSecret", + "clientId": "name", + "principalId": "id" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + } + } + }, + "202": { + "body": { + "name": "linkName", + "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", + "properties": { + "authInfo": { + "authType": "servicePrincipalSecret", + "clientId": "name", + "principalId": "id" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + } + }, + "headers": { + "azure-asyncoperation": "http://azure.async.operation/status" + } + } + }, + "operationId": "Connector_Update", + "title": "PatchConnector" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PatchDryrun.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PatchDryrun.json new file mode 100644 index 000000000000..47d2fb53682b --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PatchDryrun.json @@ -0,0 +1,79 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "dryrunName": "dryrunName", + "parameters": { + "properties": { + "parameters": { + "actionName": "createOrUpdate", + "authInfo": { + "name": "name", + "authType": "secret", + "secretInfo": { + "secretType": "rawValue", + "value": "secret" + } + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + } + } + }, + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" + }, + "responses": { + "200": { + "body": { + "name": "dryrunName", + "type": "Microsoft.ServiceLinker/dryruns", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/dryruns/dryrunName", + "properties": { + "operationPreviews": [ + { + "name": "configFirewallRule", + "description": "Config firewall rule for target service to allow source service access", + "action": "Microsoft.DocumentDb/databaseAccounts/write", + "operationType": "configNetwork", + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], + "parameters": { + "actionName": "createOrUpdate", + "authInfo": { + "name": "name", + "authType": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + }, + "prerequisiteResults": [ + { + "type": "basicError", + "code": "ResourceNotFound", + "message": "Target resource is not found" + }, + { + "type": "permissionsMissing", + "permissions": [ + "Microsoft.DocumentDb/databaseAccounts/write" + ], + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], + "provisioningState": "Succeeded" + } + } + }, + "202": { + "headers": { + "azure-AsyncOperation": "http://azure.async.operation/status" + } + } + }, + "operationId": "Linkers_UpdateDryrun", + "title": "PatchDryrun" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PatchLinker.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PatchLinker.json new file mode 100644 index 000000000000..d59fcdf32b2f --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PatchLinker.json @@ -0,0 +1,61 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "linkerName": "linkName", + "parameters": { + "properties": { + "authInfo": { + "authType": "servicePrincipalSecret", + "clientId": "name", + "principalId": "id", + "secret": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + } + }, + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" + }, + "responses": { + "200": { + "body": { + "name": "linkName", + "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", + "properties": { + "authInfo": { + "authType": "servicePrincipalSecret", + "clientId": "name", + "principalId": "id" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + } + } + }, + "201": { + "body": { + "name": "linkName", + "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", + "properties": { + "authInfo": { + "authType": "servicePrincipalSecret", + "clientId": "name", + "principalId": "id" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + } + } + } + }, + "operationId": "Linker_Update", + "title": "PatchLinker" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PutConnector.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PutConnector.json new file mode 100644 index 000000000000..e3d60f16959f --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PutConnector.json @@ -0,0 +1,65 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "connectorName": "connectorName", + "location": "westus", + "parameters": { + "properties": { + "authInfo": { + "authType": "secret" + }, + "secretStore": { + "keyVaultId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/test-kv" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "linkName", + "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", + "properties": { + "authInfo": { + "authType": "secret" + }, + "secretStore": { + "keyVaultId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/test-kv" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + } + } + }, + "201": { + "body": { + "name": "linkName", + "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", + "properties": { + "authInfo": { + "authType": "secret" + }, + "secretStore": { + "keyVaultId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/test-kv" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + } + } + } + }, + "operationId": "Connector_CreateOrUpdate", + "title": "PutConnector" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PutDryrun.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PutDryrun.json new file mode 100644 index 000000000000..de373b5f8ce5 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PutDryrun.json @@ -0,0 +1,118 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "dryrunName": "dryrunName", + "parameters": { + "properties": { + "parameters": { + "actionName": "createOrUpdate", + "authInfo": { + "name": "name", + "authType": "secret", + "secretInfo": { + "secretType": "rawValue", + "value": "secret" + } + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + } + } + }, + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" + }, + "responses": { + "200": { + "body": { + "name": "dryrunName", + "type": "Microsoft.ServiceLinker/dryruns", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/dryruns/dryrunName", + "properties": { + "operationPreviews": [ + { + "name": "configFirewallRule", + "description": "Config firewall rule for target service to allow source service access", + "action": "Microsoft.DocumentDb/databaseAccounts/write", + "operationType": "configNetwork", + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], + "parameters": { + "actionName": "createOrUpdate", + "authInfo": { + "name": "name", + "authType": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + }, + "prerequisiteResults": [ + { + "type": "basicError", + "code": "ResourceNotFound", + "message": "Target resource is not found" + }, + { + "type": "permissionsMissing", + "permissions": [ + "Microsoft.DocumentDb/databaseAccounts/write" + ], + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], + "provisioningState": "Succeeded" + } + } + }, + "201": { + "body": { + "name": "dryrunName", + "type": "Microsoft.ServiceLinker/dryruns", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/dryruns/dryrunName", + "properties": { + "operationPreviews": [ + { + "name": "configFirewallRule", + "description": "Config firewall rule for target service to allow source service access", + "action": "Microsoft.DocumentDb/databaseAccounts/write", + "operationType": "configNetwork", + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], + "parameters": { + "actionName": "createOrUpdate", + "authInfo": { + "name": "name", + "authType": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + } + }, + "prerequisiteResults": [ + { + "type": "basicError", + "code": "ResourceNotFound", + "message": "Target resource is not found" + }, + { + "type": "permissionsMissing", + "permissions": [ + "Microsoft.DocumentDb/databaseAccounts/write" + ], + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], + "provisioningState": "Updating" + } + } + } + }, + "operationId": "Linkers_CreateDryrun", + "title": "PutDryrun" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PutLinker.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PutLinker.json new file mode 100644 index 000000000000..2dedc0b12bef --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/PutLinker.json @@ -0,0 +1,70 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "linkerName": "linkName", + "parameters": { + "properties": { + "authInfo": { + "name": "name", + "authType": "secret", + "secretInfo": { + "secretType": "rawValue", + "value": "secret" + } + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DBforPostgreSQL/servers/test-pg/databases/test-db" + }, + "vNetSolution": { + "type": "serviceEndpoint" + } + } + }, + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" + }, + "responses": { + "200": { + "body": { + "name": "linkName", + "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", + "properties": { + "authInfo": { + "name": "name", + "authType": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DBforPostgreSQL/servers/test-pg/databases/test-db" + }, + "vNetSolution": { + "type": "serviceEndpoint" + } + } + } + }, + "201": { + "body": { + "name": "linkName", + "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", + "properties": { + "authInfo": { + "name": "name", + "authType": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DBforPostgreSQL/servers/test-pg/databases/test-db" + }, + "vNetSolution": { + "type": "serviceEndpoint" + } + } + } + } + }, + "operationId": "Linker_CreateOrUpdate", + "title": "PutLinker" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ValidateConnectorSuccess.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ValidateConnectorSuccess.json new file mode 100644 index 000000000000..0a1b07843312 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ValidateConnectorSuccess.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "connectorName": "connectorName", + "location": "westus", + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "properties": { + "authType": "secret", + "isConnectionAvailable": true, + "reportEndTimeUtc": "2020-07-12T22:06:09Z", + "reportStartTimeUtc": "2020-07-12T22:05:09Z", + "validationDetail": [ + { + "name": "TargetExistence", + "description": "The target existence is validated", + "result": "success" + }, + { + "name": "TargetNetworkAccess", + "description": "Deny public network access is set to yes. Please confirm you are using private endpoint connection to access target resource.", + "result": "warning" + } + ] + } + } + }, + "202": { + "headers": { + "azure-AsyncOperation": "http://azure.async.operation/status" + } + } + }, + "operationId": "Connector_Validate", + "title": "ValidateConnectorSuccess" +} diff --git a/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ValidateLinkerSuccess.json b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ValidateLinkerSuccess.json new file mode 100644 index 000000000000..6225e5426c29 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/examples/2024-07-01-preview/ValidateLinkerSuccess.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "api-version": "2024-07-01-preview", + "linkerName": "linkName", + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" + }, + "responses": { + "200": { + "body": { + "properties": { + "authType": "secret", + "isConnectionAvailable": true, + "reportEndTimeUtc": "2020-07-12T22:06:09Z", + "reportStartTimeUtc": "2020-07-12T22:05:09Z", + "sourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db", + "targetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db", + "validationDetail": [ + { + "name": "TargetExistence", + "description": "The target existence is validated", + "result": "success" + }, + { + "name": "TargetNetworkAccess", + "description": "Deny public network access is set to yes. Please confirm you are using private endpoint connection to access target resource.", + "result": "warning" + } + ] + } + } + }, + "202": { + "headers": { + "azure-AsyncOperation": "http://azure.async.operation/status" + } + } + }, + "operationId": "Linker_Validate", + "title": "ValidateLinkerSuccess" +} diff --git a/specification/servicelinker/ServiceLinker.Management/main.tsp b/specification/servicelinker/ServiceLinker.Management/main.tsp new file mode 100644 index 000000000000..39450485fdb5 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/main.tsp @@ -0,0 +1,45 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Parameters used: + * isFullCompatible: true + * guessResourceKey: false + * Version: 0.10.14 + * Date: 2025-04-29T07:23:07.547Z + */ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./models.tsp"; +import "./DryrunResource.tsp"; +import "./LinkerResource.tsp"; +import "./routes.tsp"; +import "./back-compatible.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager.Foundations; +using Azure.Core; +using Azure.ResourceManager; +using TypeSpec.Versioning; +/** + * Microsoft.ServiceLinker provider + */ +@armProviderNamespace +@service(#{ title: "Microsoft.ServiceLinker" }) +@versioned(Versions) +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) +namespace Microsoft.ServiceLinker; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 2024-07-01-preview API version. + */ + v2024_07_01_preview: "2024-07-01-preview", +} + +interface Operations extends Azure.ResourceManager.Operations {} diff --git a/specification/servicelinker/ServiceLinker.Management/models.tsp b/specification/servicelinker/ServiceLinker.Management/models.tsp new file mode 100644 index 000000000000..168c65e5c336 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/models.tsp @@ -0,0 +1,1455 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Rest; +using Azure.ResourceManager.Foundations; + +namespace Microsoft.ServiceLinker; + +/** + * The name of action for you dryrun job. + */ +union DryrunActionName { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + createOrUpdate: "createOrUpdate", +} + +/** + * The type of dryrun result. + */ +union DryrunPrerequisiteResultType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + basicError: "basicError", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + permissionsMissing: "permissionsMissing", +} + +/** + * The operation type + */ +union DryrunPreviewOperationType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + configConnection: "configConnection", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + configNetwork: "configNetwork", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + configAuth: "configAuth", +} + +/** + * The target service type. + */ +union TargetServiceType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureResource: "AzureResource", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ConfluentBootstrapServer: "ConfluentBootstrapServer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ConfluentSchemaRegistry: "ConfluentSchemaRegistry", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SelfHostedServer: "SelfHostedServer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + FabricPlatform: "FabricPlatform", +} + +/** + * The authentication type. + */ +union AuthType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + systemAssignedIdentity: "systemAssignedIdentity", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + userAssignedIdentity: "userAssignedIdentity", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + servicePrincipalSecret: "servicePrincipalSecret", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + servicePrincipalCertificate: "servicePrincipalCertificate", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + secret: "secret", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + accessKey: "accessKey", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + userAccount: "userAccount", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + easyAuthMicrosoftEntraID: "easyAuthMicrosoftEntraID", +} + +/** + * Indicates how to apply the authentication configuration operations. + */ +union AuthMode { + string, + + /** + * Default authentication configuration according to the authentication type. + */ + optInAllAuth: "optInAllAuth", + + /** + * Skip all authentication configuration such as enabling managed identity and granting RBAC roles + */ + optOutAllAuth: "optOutAllAuth", +} + +/** + * The application client type + */ +union ClientType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + none: "none", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + dotnet: "dotnet", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + java: "java", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + python: "python", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + go: "go", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + php: "php", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ruby: "ruby", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + django: "django", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + nodejs: "nodejs", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + springBoot: "springBoot", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `kafka-springBoot`: "kafka-springBoot", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `jms-springBoot`: "jms-springBoot", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + dapr: "dapr", +} + +/** + * Type of VNet solution. + */ +union VNetSolutionType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + serviceEndpoint: "serviceEndpoint", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + privateLink: "privateLink", +} + +/** + * The cleanup behavior to indicate whether clean up operation when resource is deleted or updated + */ +union DeleteOrUpdateBehavior { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Default: "Default", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ForcedCleanup: "ForcedCleanup", +} + +/** + * Whether to allow firewall rules. + */ +union AllowType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `true`: "true", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `false`: "false", +} + +/** + * The value indicating whether the metadata is required or not + */ +union DaprMetadataRequired { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `true`: "true", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `false`: "false", +} + +/** + * The direction supported by the dapr binding component + */ +union DaprBindingComponentDirection { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + input: "input", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + output: "output", +} + +/** + * The result of validation + */ +union ValidationResultStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + success: "success", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + failure: "failure", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + warning: "warning", +} + +/** + * Type of configuration to determine whether the configuration can be modified after creation. KeyvaultSecret means the configuration references a key vault secret, such as App Service/ACA key vault reference. Default means the configuration is real value, such as user name, raw secret, etc. + */ +union LinkerConfigurationType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Default: "Default", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + KeyVaultSecret: "KeyVaultSecret", +} + +/** + * The type of secret source. + */ +union SecretSourceType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + rawValue: "rawValue", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + keyVaultSecret: "keyVaultSecret", +} + +/** + * The azure resource type. + */ +union AzureResourceType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + KeyVault: "KeyVault", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AppConfig: "AppConfig", +} + +/** + * The secret type. + */ +union SecretType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + rawValue: "rawValue", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + keyVaultSecretUri: "keyVaultSecretUri", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + keyVaultSecretReference: "keyVaultSecretReference", +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union AccessKeyPermissions { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Read: "Read", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Write: "Write", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Listen: "Listen", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Send: "Send", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Manage: "Manage", +} + +/** + * Describes a page of resource object. + * @template Resource The resource type. + */ +@friendlyName("Paged{name}", Resource) +@doc("Paged collection of {name} items", Resource) +model CustomPage { + @doc("The {name} items on this page", Resource) + @pageItems + value?: Resource[]; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @doc("The link to the next page of items") + @nextLink + nextLink?: ResourceLocation | null; +} + +/** + * The list of dryrun. + */ +model DryrunList is CustomPage; + +/** + * The properties of the dryrun job + */ +model DryrunProperties { + /** + * The parameters of the dryrun + */ + parameters?: DryrunParameters; + + /** + * the result of the dryrun + */ + @visibility(Lifecycle.Read) + @OpenAPI.extension("x-ms-identifiers", #[]) + prerequisiteResults?: DryrunPrerequisiteResult[]; + + /** + * the preview of the operations for creation + */ + @visibility(Lifecycle.Read) + @OpenAPI.extension("x-ms-identifiers", #[]) + operationPreviews?: DryrunOperationPreview[]; + + /** + * The provisioning state. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + provisioningState?: string; +} + +/** + * The parameters of the dryrun + */ +@discriminator("actionName") +model DryrunParameters { + /** + * The name of action for you dryrun job. + */ + actionName: DryrunActionName; +} + +/** + * A result of dryrun + */ +@discriminator("type") +model DryrunPrerequisiteResult { + /** + * The type of dryrun result. + */ + type: DryrunPrerequisiteResultType; +} + +/** + * The preview of the operations for creation + */ +model DryrunOperationPreview { + /** + * The operation name + */ + name?: string; + + /** + * The operation type + */ + operationType?: DryrunPreviewOperationType; + + /** + * The description of the operation + */ + description?: string; + + /** + * The action defined by RBAC, refer https://docs.microsoft.com/azure/role-based-access-control/role-definitions#actions-format + */ + action?: string; + + /** + * The scope of the operation, refer https://docs.microsoft.com/azure/role-based-access-control/scope-overview + */ + scope?: string; +} + +/** + * Common fields that are returned in the response for all Azure Resource Manager resources + */ +model Resource { + /** + * Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + */ + @visibility(Lifecycle.Read) + id?: string; + + /** + * The name of the resource + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + */ + @visibility(Lifecycle.Read) + type?: string; + + /** + * Azure Resource Manager metadata containing createdBy and modifiedBy information. + */ + @visibility(Lifecycle.Read) + systemData?: SystemData; +} + +/** + * a dryrun job to be updated. + */ +model DryrunPatch { + /** + * The properties of the dryrun job. + */ + properties?: DryrunProperties; +} + +/** + * The list of Linker. + */ +model ResourceList is CustomPage; + +/** + * The properties of the Linker. + */ +model LinkerProperties { + /** + * The target service properties + */ + targetService?: TargetServiceBase; + + /** + * The authentication type. + */ + authInfo?: AuthInfoBase; + + /** + * The application client type + */ + clientType?: ClientType; + + /** + * The provisioning state. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + provisioningState?: string; + + /** + * The VNet solution. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + vNetSolution?: VNetSolution | null; + + /** + * An option to store secret value in secure place + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + secretStore?: SecretStore | null; + + /** + * connection scope in source service. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + scope?: string | null; + + /** + * The network solution. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + publicNetworkSolution?: PublicNetworkSolution | null; + + /** + * The connection information consumed by applications, including secrets, connection strings. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + configurationInfo?: ConfigurationInfo | null; +} + +/** + * The target service properties + */ +@discriminator("type") +model TargetServiceBase { + /** + * The target service type. + */ + type: TargetServiceType; +} + +/** + * The authentication info + */ +@discriminator("authType") +model AuthInfoBase { + /** + * The authentication type. + */ + authType: AuthType; + + /** + * Optional. Indicates how to configure authentication. If optInAllAuth, service linker configures authentication such as enabling identity on source resource and granting RBAC roles. If optOutAllAuth, opt out authentication setup. Default is optInAllAuth. + */ + authMode?: AuthMode; +} + +/** + * The VNet solution for linker + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model VNetSolution { + /** + * Type of VNet solution. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + type?: VNetSolutionType | null; + + /** + * Indicates whether to clean up previous operation when Linker is updating or deleting + */ + deleteOrUpdateBehavior?: DeleteOrUpdateBehavior; +} + +/** + * An option to store secret value in secure place + */ +model SecretStore { + /** + * The key vault id to store secret + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + keyVaultId?: string | null; + + /** + * The key vault secret name to store secret, only valid when storing one secret + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + keyVaultSecretName?: string | null; +} + +/** + * Indicates public network solution, include firewall rules + */ +model PublicNetworkSolution { + /** + * Indicates whether to clean up previous operation(such as firewall rules) when Linker is updating or deleting + */ + deleteOrUpdateBehavior?: DeleteOrUpdateBehavior; + + /** + * Optional. Indicates public network solution. If enable, enable public network access of target service with best try. Default is enable. If optOut, opt out public network access configuration. + */ + action?: ActionType; + + /** + * Describe firewall rules of target service to make sure source application could connect to the target. + */ + firewallRules?: FirewallRules; +} + +/** + * Target service's firewall rules. to allow connections from source service. + */ +model FirewallRules { + /** + * This value specifies the set of IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IPs for a given database account. + */ + ipRanges?: string[]; + + /** + * Allow Azure services to access the target service if true. + */ + azureServices?: AllowType; + + /** + * Allow caller client IP to access the target service if true. the property is used when connecting local application to target service. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + callerClientIP?: AllowType; +} + +/** + * The configuration information, used to generate configurations or save to applications + */ +model ConfigurationInfo { + /** + * Indicates whether to clean up previous operation when Linker is updating or deleting + */ + deleteOrUpdateBehavior?: DeleteOrUpdateBehavior; + + /** + * Optional, indicate whether to apply configurations on source application. If enable, generate configurations and applied to the source application. Default is enable. If optOut, no configuration change will be made on source. + */ + action?: ActionType; + + /** + * Optional. A dictionary of default key name and customized key name mapping. If not specified, default key name will be used for generate configurations + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + customizedKeys?: Record; + + /** + * Indicates some additional properties for dapr client type + */ + daprProperties?: DaprProperties; + + /** + * A dictionary of additional configurations to be added. Service will auto generate a set of basic configurations and this property is to full fill more customized configurations + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + additionalConfigurations?: Record; + + /** + * A dictionary of additional properties to be added in the end of connection string. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + additionalConnectionStringProperties?: Record; + + /** + * An option to store configuration into different place + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + configurationStore?: ConfigurationStore | null; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union ActionType { + /** Actions are for internal-only APIs. */ + enable: "enable", + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + optOut: "optOut", + string, +} +/** + * Indicates some additional properties for dapr client type + */ +model DaprProperties { + /** + * The dapr component version + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + version?: string | null; + + /** + * The dapr component type + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + componentType?: string | null; + + /** + * The name of a secret store dapr to retrieve secret + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + secretStoreComponent?: string | null; + + /** + * Additional dapr metadata + */ + @OpenAPI.extension("x-ms-identifiers", #["name"]) + metadata?: DaprMetadata[]; + + /** + * The dapr component scopes + */ + scopes?: string[]; + + /** + * The runtime version supported by the properties + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + runtimeVersion?: string | null; + + /** + * The direction supported by the dapr binding component + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + bindingComponentDirection?: DaprBindingComponentDirection | null; +} + +/** + * The dapr component metadata. + */ +model DaprMetadata { + /** + * Metadata property name. + */ + name?: string; + + /** + * Metadata property value. + */ + value?: string; + + /** + * The secret name where dapr could get value + */ + secretRef?: string; + + /** + * The description of the metadata, returned from configuration api + */ + description?: string; + + /** + * The value indicating whether the metadata is required or not + */ + required?: DaprMetadataRequired; +} + +/** + * An option to store configuration into different place + */ +model ConfigurationStore { + /** + * The app configuration id to store configuration + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + appConfigurationId?: string | null; +} + +/** + * A Linker to be updated. + */ +model LinkerPatch { + /** + * Linker properties + */ + properties?: LinkerProperties; +} + +/** + * The validation operation result for a Linker. + */ +model ValidateOperationResult { + /** + * The validation result detail. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: ValidateResult | null; + + /** + * Validated Linker id. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + resourceId?: string | null; + + /** + * Validation operation status. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + status?: string | null; +} + +/** + * The validation result for a Linker. + */ +model ValidateResult { + /** + * The linker name. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + linkerName?: string | null; + + /** + * A boolean value indicating whether the connection is available or not + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + isConnectionAvailable?: boolean | null; + + /** + * The start time of the validation report. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + reportStartTimeUtc?: utcDateTime | null; + + /** + * The end time of the validation report. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + reportEndTimeUtc?: utcDateTime | null; + + /** + * The resource id of the Linker source application. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + sourceId?: string | null; + + /** + * The resource Id of target service. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + targetId?: string | null; + + /** + * The authentication type. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + authType?: AuthType | null; + + /** + * The detail of validation result + */ + @OpenAPI.extension("x-ms-identifiers", #["name"]) + validationDetail?: ValidationResultItem[]; +} + +/** + * The validation item for a Linker. + */ +model ValidationResultItem { + /** + * The validation item name. + */ + name?: string; + + /** + * The display name of validation item + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + description?: string | null; + + /** + * The result of validation + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + result?: ValidationResultStatus | null; + + /** + * The error message of validation result + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + errorMessage?: string | null; + + /** + * The error code of validation result + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + errorCode?: string | null; +} + +/** + * Configurations for source resource, include appSettings, connectionString and serviceBindings + */ +model ConfigurationResult { + /** + * The configuration properties for source resource. + */ + @OpenAPI.extension("x-ms-identifiers", #["name"]) + configurations?: SourceConfiguration[]; +} + +/** + * A configuration item for source resource + */ +model SourceConfiguration { + /** + * The name of setting. + */ + name?: string; + + /** + * The value of setting + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + value?: string | null; + + /** + * The type of setting + */ + @visibility(Lifecycle.Read) + configType?: LinkerConfigurationType; + + /** + * The identity for key vault reference, system or user-assigned managed identity ID + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + keyVaultReferenceIdentity?: string | null; + + /** + * Descriptive information for the configuration + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + description?: string | null; +} + +/** + * Configuration Name list which will be set based on different target resource, client type, auth type. + */ +model ConfigurationNameResult is Azure.Core.Page; + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ConfigurationNameItem { + /** + * The result detail. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: ConfigurationNames | null; +} + +/** + * The configuration names which will be set based on specific target resource, client type, auth type. + */ +model ConfigurationNames { + /** + * The target service provider name and resource name. + */ + targetService?: string; + + /** + * The client type for configuration names. + */ + clientType?: ClientType; + + /** + * The auth type. + */ + authType?: AuthType; + + /** + * Indicates where the secrets in configuration from. Used when secrets are from Keyvault. + */ + secretType?: SecretSourceType; + + /** + * Deprecated, please use #/definitions/DaprConfigurationList instead + */ + daprProperties?: DaprProperties; + + /** + * The configuration names to be set in compute service environment. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + names?: ConfigurationName[]; +} + +/** + * The configuration names. + */ +model ConfigurationName { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + value?: string; + + /** + * Description for the configuration name. + */ + description?: string; + + /** + * Represent the configuration is required or not + */ + required?: boolean; +} + +/** + * Dapr configuration list supported by Service Connector + */ +model DaprConfigurationList is Azure.Core.Page; + +/** + * Represent one resource of the dapr configuration list + */ +model DaprConfigurationResource { + /** + * The properties of the dapr configuration. + */ + properties?: DaprConfigurationProperties; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model DaprConfigurationProperties { + /** + * Supported target resource type, extract from resource id, uppercase + */ + targetType?: string; + + /** + * The authentication type. + */ + authType?: AuthType; + + /** + * Indicates some additional properties for dapr client type + */ + daprProperties?: DaprProperties; +} + +/** + * The azure resource properties + */ +@discriminator("type") +model AzureResourcePropertiesBase { + /** + * The azure resource type. + */ + type: AzureResourceType; +} + +/** + * The azure resource info when target service type is AzureResource + */ +model AzureResource extends TargetServiceBase { + /** + * The Id of azure resource. + */ + id?: string; + + /** + * The azure resource connection related properties. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + resourceProperties?: AzureResourcePropertiesBase | null; + + /** + * The target service type. + */ + type: "AzureResource"; +} + +/** + * The resource properties when type is Azure Key Vault + */ +model AzureKeyVaultProperties extends AzureResourcePropertiesBase { + /** + * True if connect via Kubernetes CSI Driver. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + connectAsKubernetesCsiDriver?: boolean | null; + + /** + * The azure resource type. + */ + type: "KeyVault"; +} + +/** + * The resource properties when type is Azure App Configuration + */ +model AzureAppConfigProperties extends AzureResourcePropertiesBase { + /** + * True if connection enables app configuration kubernetes extension. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + connectWithKubernetesExtension?: boolean | null; + + /** + * The azure resource type. + */ + type: "AppConfig"; +} + +/** + * The service properties when target service type is ConfluentBootstrapServer + */ +model ConfluentBootstrapServer extends TargetServiceBase { + /** + * The endpoint of service. + */ + endpoint?: string; + + /** + * The target service type. + */ + type: "ConfluentBootstrapServer"; +} + +/** + * The service properties when target service type is FabricPlatform + */ +model FabricPlatform extends TargetServiceBase { + /** + * The endpoint of service. + */ + endpoint?: string; + + /** + * The target service type. + */ + type: "FabricPlatform"; +} + +/** + * The service properties when target service type is SelfHostedServer + */ +model SelfHostedServer extends TargetServiceBase { + /** + * The endpoint of service. + */ + endpoint?: string; + + /** + * The target service type. + */ + type: "SelfHostedServer"; +} + +/** + * The service properties when target service type is ConfluentSchemaRegistry + */ +model ConfluentSchemaRegistry extends TargetServiceBase { + /** + * The endpoint of service. + */ + endpoint?: string; + + /** + * The target service type. + */ + type: "ConfluentSchemaRegistry"; +} + +/** + * The secret info + */ +@discriminator("secretType") +model SecretInfoBase { + /** + * The secret type. + */ + secretType: SecretType; +} + +/** + * The secret info when type is rawValue. It's for scenarios that user input the secret. + */ +model ValueSecretInfo extends SecretInfoBase { + /** + * The actual value of the secret. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @secret + value?: string | null; + + /** + * The secret type. + */ + secretType: "rawValue"; +} + +/** + * The secret info when type is keyVaultSecretReference. It's for scenario that user provides a secret stored in user's keyvault and source is Azure Kubernetes. The key Vault's resource id is linked to secretStore.keyVaultId. + */ +model KeyVaultSecretReferenceSecretInfo extends SecretInfoBase { + /** + * Name of the Key Vault secret. + */ + name?: string; + + /** + * Version of the Key Vault secret. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + version?: string | null; + + /** + * The secret type. + */ + secretType: "keyVaultSecretReference"; +} + +/** + * The secret info when type is keyVaultSecretUri. It's for scenario that user provides a secret stored in user's keyvault and source is Web App, Spring Cloud or Container App. + */ +model KeyVaultSecretUriSecretInfo extends SecretInfoBase { + /** + * URI to the keyvault secret + */ + value?: string; + + /** + * The secret type. + */ + secretType: "keyVaultSecretUri"; +} + +/** + * The access key directly from target resource properties, which target service is Azure Resource, such as Microsoft.Storage + */ +model AccessKeyInfoBase extends AuthInfoBase { + /** + * Permissions of the accessKey. `Read` and `Write` are for Azure Cosmos DB and Azure App Configuration, `Listen`, `Send` and `Manage` are for Azure Event Hub and Azure Service Bus. + */ + permissions?: AccessKeyPermissions[]; + + /** + * The authentication type. + */ + authType: "accessKey"; +} + +/** + * The extra auth info required by Database AAD authentication. + */ +model DatabaseAadAuthInfo { + /** + * Username created in the database which is mapped to a user in AAD. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + userName?: string | null; +} + +/** + * The authentication info when authType is secret + */ +model SecretAuthInfo extends AuthInfoBase { + /** + * Username or account name for secret auth. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + name?: string | null; + + /** + * Password or key vault secret for secret auth. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + secretInfo?: SecretInfoBase | null; + + /** + * The authentication type. + */ + authType: "secret"; +} + +/** + * The authentication info when authType is userAssignedIdentity + */ +model UserAssignedIdentityAuthInfo extends AuthInfoBase { + ...DatabaseAadAuthInfo; + + /** + * Client Id for userAssignedIdentity. + */ + clientId?: string; + + /** + * Subscription id for userAssignedIdentity. + */ + subscriptionId?: string; + + /** + * Indicates whether to clean up previous operation when Linker is updating or deleting + */ + deleteOrUpdateBehavior?: DeleteOrUpdateBehavior; + + /** + * Optional, this value specifies the Azure role to be assigned + */ + roles?: string[]; + + /** + * The authentication type. + */ + authType: "userAssignedIdentity"; +} + +/** + * The authentication info when authType is systemAssignedIdentity + */ +model SystemAssignedIdentityAuthInfo extends AuthInfoBase { + ...DatabaseAadAuthInfo; + + /** + * Indicates whether to clean up previous operation when Linker is updating or deleting + */ + deleteOrUpdateBehavior?: DeleteOrUpdateBehavior; + + /** + * Optional, this value specifies the Azure role to be assigned + */ + roles?: string[]; + + /** + * The authentication type. + */ + authType: "systemAssignedIdentity"; +} + +/** + * The authentication info when authType is servicePrincipal secret + */ +model ServicePrincipalSecretAuthInfo extends AuthInfoBase { + ...DatabaseAadAuthInfo; + + /** + * ServicePrincipal application clientId for servicePrincipal auth. + */ + clientId: string; + + /** + * Principal Id for servicePrincipal auth. + */ + principalId: string; + + /** + * Secret for servicePrincipal auth. + */ + @secret + secret: string; + + /** + * Indicates whether to clean up previous operation when Linker is updating or deleting + */ + deleteOrUpdateBehavior?: DeleteOrUpdateBehavior; + + /** + * Optional, this value specifies the Azure roles to be assigned. Automatically + */ + roles?: string[]; + + /** + * The authentication type. + */ + authType: "servicePrincipalSecret"; +} + +/** + * The authentication info when authType is servicePrincipal certificate + */ +model ServicePrincipalCertificateAuthInfo extends AuthInfoBase { + /** + * Application clientId for servicePrincipal auth. + */ + clientId: string; + + /** + * Principal Id for servicePrincipal auth. + */ + principalId: string; + + /** + * ServicePrincipal certificate for servicePrincipal auth. + */ + @secret + certificate: string; + + /** + * Indicates whether to clean up previous operation when Linker is updating or deleting + */ + deleteOrUpdateBehavior?: DeleteOrUpdateBehavior; + + /** + * Optional, this value specifies the Azure roles to be assigned. Automatically + */ + roles?: string[]; + + /** + * The authentication type. + */ + authType: "servicePrincipalCertificate"; +} + +/** + * The authentication info when authType is user account + */ +model UserAccountAuthInfo extends AuthInfoBase { + ...DatabaseAadAuthInfo; + + /** + * Principal Id for user account. + */ + principalId?: string; + + /** + * Indicates whether to clean up previous operation when Linker is updating or deleting + */ + deleteOrUpdateBehavior?: DeleteOrUpdateBehavior; + + /** + * Optional, this value specifies the Azure roles to be assigned. Automatically + */ + roles?: string[]; + + /** + * The authentication type. + */ + authType: "userAccount"; +} + +/** + * The authentication info when authType is EasyAuth Microsoft Entra ID + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model EasyAuthMicrosoftEntraIDAuthInfo extends AuthInfoBase { + /** + * Application clientId for EasyAuth Microsoft Entra ID. + */ + clientId?: string; + + /** + * Application Secret for EasyAuth Microsoft Entra ID. + */ + @secret + secret?: string; + + /** + * Indicates whether to clean up previous operation when Linker is updating or deleting + */ + deleteOrUpdateBehavior?: DeleteOrUpdateBehavior; + + /** + * The authentication type. + */ + authType: "easyAuthMicrosoftEntraID"; +} + +/** + * The dryrun parameters for creation or update a linker + */ +model CreateOrUpdateDryrunParameters extends DryrunParameters { + ...LinkerProperties; + + /** + * The name of action for you dryrun job. + */ + actionName: "createOrUpdate"; +} + +/** + * The represent of basic error + */ +model BasicErrorDryrunPrerequisiteResult extends DryrunPrerequisiteResult { + /** + * The error code. + */ + code?: string; + + /** + * The error message. + */ + message?: string; + + /** + * The type of dryrun result. + */ + type: "basicError"; +} + +/** + * The represent of missing permissions + */ +model PermissionsMissingDryrunPrerequisiteResult + extends DryrunPrerequisiteResult { + /** + * The permission scope + */ + scope?: string; + + /** + * The permission list + */ + permissions?: string[]; + + /** + * The recommended role to resolve permissions missing + */ + recommendedRole?: string; + + /** + * The type of dryrun result. + */ + type: "permissionsMissing"; +} diff --git a/specification/servicelinker/ServiceLinker.Management/routes.tsp b/specification/servicelinker/ServiceLinker.Management/routes.tsp new file mode 100644 index 000000000000..f11715e6713f --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/routes.tsp @@ -0,0 +1,59 @@ +// FIXME: Operations in this file are not detected as a resource operation, please confirm the conversion result manually + +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "./models.tsp"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; + +namespace Microsoft.ServiceLinker; + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface LinkersOperationGroup { + /** + * List the dapr configuration supported by Service Connector. + */ + @route("/{+resourceUri}/providers/Microsoft.ServiceLinker/daprConfigurations") + @get + @list + listDaprConfigurations( + ...ApiVersionParameter, + + /** + * The fully qualified Azure Resource manager identifier of the resource to be connected. + */ + @path + resourceUri: string, + ): ArmResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface ConfigurationNamesOperationGroup { + /** + * Lists the configuration names generated by Service Connector for all target, client types, auth types. + */ + @autoRoute + @get + @list + @action("configurationNames") + list is ArmProviderActionSync< + Response = ConfigurationNameResult, + Parameters = { + /** + * OData filter options. + */ + @query("$filter") + $filter?: string; + + /** + * OData skipToken option for pagination. + */ + @query("$skipToken") + $skipToken?: string; + } + >; +} diff --git a/specification/servicelinker/ServiceLinker.Management/tspconfig.yaml b/specification/servicelinker/ServiceLinker.Management/tspconfig.yaml new file mode 100644 index 000000000000..e2bd0d80f2b8 --- /dev/null +++ b/specification/servicelinker/ServiceLinker.Management/tspconfig.yaml @@ -0,0 +1,52 @@ +parameters: + "service-dir": + default: "sdk/servicelinker" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + use-read-only-status-schema: true + omit-unreachable-types: true + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "resource-manager" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/servicelinker.json" + examples-dir: "{project-root}/examples" + arm-resource-flattening: true + emit-lro-options: "all" + "@azure-tools/typespec-csharp": + flavor: azure + package-dir: "Azure.ResourceManager.ServiceLinker" + clear-output-folder: true + model-namespace: true + namespace: "{package-dir}" + "@azure-tools/typespec-python": + package-dir: "azure-mgmt-servicelinker" + namespace: "azure.mgmt.servicelinker" + generate-test: true + generate-sample: true + flavor: "azure" + "@azure-tools/typespec-java": + package-dir: "azure-resourcemanager-servicelinker" + namespace: "com.azure.resourcemanager.servicelinker" + service-name: "ServiceLinker" # human-readable service name, whitespace allowed + flavor: azure + "@azure-tools/typespec-ts": + package-dir: "arm-servicelinker" + flavor: azure + experimental-extensible-enums: true + package-details: + name: "@azure/arm-servicelinker" + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/servicelinker" + package-dir: "armservicelinker" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/{package-dir}" + fix-const-stuttering: true + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true + factory-gather-all-params: false +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConfigurationNamesList.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConfigurationNamesList.json index 57c406a4b875..60d23198eeb0 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConfigurationNamesList.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConfigurationNamesList.json @@ -5,48 +5,50 @@ "responses": { "200": { "body": { + "nextLink": null, "value": [ { "properties": { - "targetService": "MICROSOFT.APPCONFIGURATION/CONFIGURATIONSTORES", - "clientType": "none", "authType": "systemAssignedIdentity", + "clientType": "none", "names": [ { - "value": "AZURE_APPCONFIGURATION_ENDPOINT", - "description": "App configuration endpoint" + "description": "App configuration endpoint", + "value": "AZURE_APPCONFIGURATION_ENDPOINT" }, { - "value": "AZURE_APPCONFIGURATION_SCOPE", - "description": "The scopes required for the token." + "description": "The scopes required for the token.", + "value": "AZURE_APPCONFIGURATION_SCOPE" } - ] + ], + "targetService": "MICROSOFT.APPCONFIGURATION/CONFIGURATIONSTORES" } }, { "properties": { - "targetService": "MICROSOFT.APPCONFIGURATION/CONFIGURATIONSTORES", - "clientType": "none", "authType": "userAssignedIdentity", + "clientType": "none", "names": [ { - "value": "AZURE_APPCONFIGURATION_ENDPOINT", - "description": "App configuration endpoint" + "description": "App configuration endpoint", + "value": "AZURE_APPCONFIGURATION_ENDPOINT" }, { - "value": "AZURE_APPCONFIGURATION_CLIENTID", - "description": "The client(application) ID of the user identity." + "description": "The client(application) ID of the user identity.", + "value": "AZURE_APPCONFIGURATION_CLIENTID" }, { - "value": "AZURE_APPCONFIGURATION_SCOPE", - "description": "The scopes required for getting token." + "description": "The scopes required for getting token.", + "value": "AZURE_APPCONFIGURATION_SCOPE" } - ] + ], + "targetService": "MICROSOFT.APPCONFIGURATION/CONFIGURATIONSTORES" } } - ], - "nextLink": null + ] } } - } + }, + "operationId": "ConfigurationNames_List", + "title": "GetConfigurationNames" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunCreate.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunCreate.json index d4103f9d88e4..0346c23cc778 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunCreate.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunCreate.json @@ -1,29 +1,29 @@ { "parameters": { "api-version": "2024-07-01-preview", - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "test-rg", - "location": "westus", "dryrunName": "dryrunName", + "location": "westus", "parameters": { "properties": { "parameters": { "actionName": "createOrUpdate", - "targetService": { - "type": "AzureResource", - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" - }, "authInfo": { - "authType": "secret", "name": "name", + "authType": "secret", "secretInfo": { "secretType": "rawValue", "value": "secret" } + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" } } } - } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -31,15 +31,24 @@ "name": "dryrunName", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ServiceLinker/locations/westus/dryruns/dryrunName", "properties": { + "operationPreviews": [ + { + "name": "configFirewallRule", + "description": "Config firewall rule for target service to allow source service access", + "action": "Microsoft.DocumentDb/databaseAccounts/write", + "operationType": "configNetwork", + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], "parameters": { "actionName": "createOrUpdate", + "authInfo": { + "name": "name", + "authType": "secret" + }, "targetService": { "type": "AzureResource", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" - }, - "authInfo": { - "authType": "secret", - "name": "name" } }, "prerequisiteResults": [ @@ -50,18 +59,9 @@ }, { "type": "permissionsMissing", - "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc", "permissions": [ "Microsoft.DocumentDb/databaseAccounts/write" - ] - } - ], - "operationPreviews": [ - { - "name": "configFirewallRule", - "operationType": "configNetwork", - "description": "Config firewall rule for target service to allow source service access", - "action": "Microsoft.DocumentDb/databaseAccounts/write", + ], "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" } ], @@ -74,15 +74,24 @@ "name": "dryrunName", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ServiceLinker/locations/westus/dryruns/dryrunName", "properties": { + "operationPreviews": [ + { + "name": "configFirewallRule", + "description": "Config firewall rule for target service to allow source service access", + "action": "Microsoft.DocumentDb/databaseAccounts/write", + "operationType": "configNetwork", + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], "parameters": { "actionName": "createOrUpdate", + "authInfo": { + "name": "name", + "authType": "secret" + }, "targetService": { "type": "AzureResource", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" - }, - "authInfo": { - "authType": "secret", - "name": "name" } }, "prerequisiteResults": [ @@ -93,18 +102,9 @@ }, { "type": "permissionsMissing", - "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc", "permissions": [ "Microsoft.DocumentDb/databaseAccounts/write" - ] - } - ], - "operationPreviews": [ - { - "name": "configFirewallRule", - "operationType": "configNetwork", - "description": "Config firewall rule for target service to allow source service access", - "action": "Microsoft.DocumentDb/databaseAccounts/write", + ], "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" } ], @@ -112,5 +112,7 @@ } } } - } + }, + "operationId": "Connector_CreateDryrun", + "title": "ConnectorDryrunCreate" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunDelete.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunDelete.json index d1cd053dfdf2..ea7e371c8758 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunDelete.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunDelete.json @@ -1,13 +1,15 @@ { "parameters": { "api-version": "2024-07-01-preview", - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "test-rg", + "dryrunName": "dryrunName", "location": "westus", - "dryrunName": "dryrunName" + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": {}, "204": {} - } + }, + "operationId": "Connector_DeleteDryrun", + "title": "ConnectorDryrunDelete" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunGet.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunGet.json index e9fab0f0d0fb..3fb1c39a1bd8 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunGet.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunGet.json @@ -1,10 +1,10 @@ { "parameters": { "api-version": "2024-07-01-preview", - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "test-rg", + "dryrunName": "dryrunName", "location": "westus", - "dryrunName": "dryrunName" + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -15,8 +15,8 @@ "parameters": { "actionName": "createOrUpdate", "authInfo": { - "authType": "secret", - "name": "username" + "name": "username", + "authType": "secret" }, "targetService": { "type": "AzureResource", @@ -29,5 +29,7 @@ } } } - } + }, + "operationId": "Connector_GetDryrun", + "title": "ConnectorDryrunGet" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunList.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunList.json index b0d6cb39937d..f7334b46b551 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunList.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunList.json @@ -1,9 +1,9 @@ { "parameters": { "api-version": "2024-07-01-preview", - "subscriptionId": "00000000-0000-0000-0000-000000000000", + "location": "westus", "resourceGroupName": "test-rg", - "location": "westus" + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -16,8 +16,8 @@ "parameters": { "actionName": "createOrUpdate", "authInfo": { - "authType": "secret", - "name": "username" + "name": "username", + "authType": "secret" }, "targetService": { "type": "AzureResource", @@ -32,5 +32,7 @@ ] } } - } + }, + "operationId": "Connector_ListDryrun", + "title": "ConnectorDryrunList" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunUpdate.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunUpdate.json index 3f87be091230..a578b7253f90 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunUpdate.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorDryrunUpdate.json @@ -1,29 +1,29 @@ { "parameters": { "api-version": "2024-07-01-preview", - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "test-rg", - "location": "westus", "dryrunName": "dryrunName", + "location": "westus", "parameters": { "properties": { "parameters": { "actionName": "createOrUpdate", - "targetService": { - "type": "AzureResource", - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" - }, "authInfo": { - "authType": "secret", "name": "name", + "authType": "secret", "secretInfo": { "secretType": "rawValue", "value": "secret" } + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" } } } - } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -31,15 +31,24 @@ "name": "dryrunName", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ServiceLinker/locations/westus/dryruns/dryrunName", "properties": { + "operationPreviews": [ + { + "name": "configFirewallRule", + "description": "Config firewall rule for target service to allow source service access", + "action": "Microsoft.DocumentDb/databaseAccounts/write", + "operationType": "configNetwork", + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], "parameters": { "actionName": "createOrUpdate", + "authInfo": { + "name": "name", + "authType": "secret" + }, "targetService": { "type": "AzureResource", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" - }, - "authInfo": { - "authType": "secret", - "name": "name" } }, "prerequisiteResults": [ @@ -50,18 +59,9 @@ }, { "type": "permissionsMissing", - "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc", "permissions": [ "Microsoft.DocumentDb/databaseAccounts/write" - ] - } - ], - "operationPreviews": [ - { - "name": "configFirewallRule", - "operationType": "configNetwork", - "description": "Config firewall rule for target service to allow source service access", - "action": "Microsoft.DocumentDb/databaseAccounts/write", + ], "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" } ], @@ -74,5 +74,7 @@ "azure-AsyncOperation": "http://azure.async.operation/status" } } - } + }, + "operationId": "Connector_UpdateDryrun", + "title": "ConnectorDryrunUpdate" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorList.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorList.json index ac02963e6953..f517a1d3f1aa 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorList.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ConnectorList.json @@ -1,22 +1,22 @@ { "parameters": { "api-version": "2024-07-01-preview", - "subscriptionId": "00000000-0000-0000-0000-000000000000", + "location": "westus", "resourceGroupName": "test-rg", - "location": "westus" + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ServiceLinker/linkers/linkName", "name": "linkName", "type": "Microsoft.ServiceLinker/devConnectors", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ServiceLinker/linkers/linkName", "properties": { "authInfo": { - "authType": "secret", - "name": "username" + "name": "username", + "authType": "secret" }, "targetService": { "type": "AzureResource", @@ -30,5 +30,7 @@ ] } } - } + }, + "operationId": "Connector_List", + "title": "ConnectorList" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/Connectors.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/Connectors.json index b774d9142b09..83de11414221 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/Connectors.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/Connectors.json @@ -1,17 +1,17 @@ { "parameters": { "api-version": "2024-07-01-preview", - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "test-rg", + "connectorName": "connectorName", "location": "westus", - "connectorName": "connectorName" + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ServiceLinker/devConnnectors/linkName", "name": "linkName", "type": "Microsoft.ServiceLinker/devConnectors", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ServiceLinker/devConnnectors/linkName", "properties": { "authInfo": { "authType": "systemAssignedIdentity", @@ -19,19 +19,19 @@ "customizedOwner" ] }, - "targetService": { - "type": "AzureResource", - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" - }, "publicNetworkSolution": { + "action": "enable", + "deleteOrUpdateBehavior": "ForcedCleanup", "firewallRules": { + "callerClientIP": "true", "ipRanges": [ "182.22.120" - ], - "callerClientIP": "true" - }, - "action": "enable", - "deleteOrUpdateBehavior": "ForcedCleanup" + ] + } + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" } }, "systemData": { @@ -39,5 +39,7 @@ } } } - } + }, + "operationId": "Connector_Get", + "title": "Connector" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/DeleteConnector.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/DeleteConnector.json index 1dc02aed0953..de50de9a9ff4 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/DeleteConnector.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/DeleteConnector.json @@ -1,18 +1,20 @@ { "parameters": { "api-version": "2024-07-01-preview", - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "test-rg", + "connectorName": "connectorName", "location": "westus", - "connectorName": "connectorName" + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": {}, - "204": {}, "202": { "headers": { "azure-AsyncOperation": "http://azure.async.operation/status" } - } - } + }, + "204": {} + }, + "operationId": "Connector_Delete", + "title": "DeleteConnector" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/DeleteDryrun.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/DeleteDryrun.json index b6d84517cba6..c99e971c5f16 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/DeleteDryrun.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/DeleteDryrun.json @@ -1,11 +1,13 @@ { "parameters": { "api-version": "2024-07-01-preview", - "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app", - "dryrunName": "dryrunName" + "dryrunName": "dryrunName", + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" }, "responses": { "200": {}, "204": {} - } + }, + "operationId": "Linkers_DeleteDryrun", + "title": "DeleteDryrun" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/DeleteLinker.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/DeleteLinker.json index a2eb35ce6361..1790418daf0c 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/DeleteLinker.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/DeleteLinker.json @@ -1,16 +1,18 @@ { "parameters": { "api-version": "2024-07-01-preview", - "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app", - "linkerName": "linkName" + "linkerName": "linkName", + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" }, "responses": { "200": {}, - "204": {}, "202": { "headers": { "azure-AsyncOperation": "http://azure.async.operation/status" } - } - } + }, + "204": {} + }, + "operationId": "Linker_Delete", + "title": "DeleteLinker" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/GenerateConfigurations.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/GenerateConfigurations.json index b51f80725ab6..6d20f473edc9 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/GenerateConfigurations.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/GenerateConfigurations.json @@ -1,15 +1,15 @@ { "parameters": { "api-version": "2024-07-01-preview", - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "test-rg", - "location": "westus", "connectorName": "connectorName", + "location": "westus", "parameters": { "customizedKeys": { "ASL_DocumentDb_ConnectionString": "MyConnectionstring" } - } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -22,5 +22,7 @@ ] } } - } + }, + "operationId": "Connector_GenerateConfigurations", + "title": "GenerateConfiguration" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/GetConfigurations.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/GetConfigurations.json index 39d787a2211d..616117992689 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/GetConfigurations.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/GetConfigurations.json @@ -1,8 +1,8 @@ { "parameters": { "api-version": "2024-07-01-preview", - "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.App/containerApps/test-app", - "linkerName": "linkName" + "linkerName": "linkName", + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.App/containerApps/test-app" }, "responses": { "200": { @@ -10,32 +10,34 @@ "configurations": [ { "name": "AZURE_POSTGRESQL_HOST", - "value": "Host", - "configType": "Default" + "configType": "Default", + "value": "Host" }, { "name": "AZURE_POSTGRESQL_USER", - "value": "Username", - "configType": "Default" + "configType": "Default", + "value": "Username" }, { "name": "AZURE_POSTGRESQL_DATABASE", - "value": "DatabaseName", - "configType": "Default" + "configType": "Default", + "value": "DatabaseName" }, { "name": "AZURE_POSTGRESQL_PORT", - "value": "Port", - "configType": "Default" + "configType": "Default", + "value": "Port" }, { "name": "AZURE_POSTGRESQL_PASSWORD", - "value": "SecretUri", "configType": "KeyVaultSecret", - "keyVaultReferenceIdentity": "system" + "keyVaultReferenceIdentity": "system", + "value": "SecretUri" } ] } } - } + }, + "operationId": "Linker_ListConfigurations", + "title": "GetConfiguration" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/GetDaprConfigurations.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/GetDaprConfigurations.json index cdbc03e325fc..1da585d90c35 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/GetDaprConfigurations.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/GetDaprConfigurations.json @@ -9,25 +9,27 @@ "value": [ { "properties": { - "targetType": "MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES", "authType": "secret", "daprProperties": { - "version": "v1", - "componentType": "bindings", - "runtimeVersion": "1.10", "bindingComponentDirection": "input", + "componentType": "bindings", "metadata": [ { "name": "containerName", "description": "The name of the container to be used for Dapr state.", "required": "true" } - ] - } + ], + "runtimeVersion": "1.10", + "version": "v1" + }, + "targetType": "MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES" } } ] } } - } + }, + "operationId": "Linkers_ListDaprConfigurations", + "title": "GetDaprConfigurations" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/GetDryrun.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/GetDryrun.json index 6545c44b1163..cbc968892334 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/GetDryrun.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/GetDryrun.json @@ -1,21 +1,21 @@ { "parameters": { "api-version": "2024-07-01-preview", - "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app", - "dryrunName": "dryrunName" + "dryrunName": "dryrunName", + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/dryruns/dryrunName", "name": "dryrunName", "type": "Microsoft.ServiceLinker/dryruns", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/dryruns/dryrunName", "properties": { "parameters": { "actionName": "createOrUpdate", "authInfo": { - "authType": "secret", - "name": "username" + "name": "username", + "authType": "secret" }, "targetService": { "type": "AzureResource", @@ -28,5 +28,7 @@ } } } - } + }, + "operationId": "Linkers_GetDryrun", + "title": "GetDryrun" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/Linker.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/Linker.json index eabc04aa76e7..bcd55b38ee7d 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/Linker.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/Linker.json @@ -1,41 +1,41 @@ { "parameters": { "api-version": "2024-07-01-preview", - "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app", - "linkerName": "linkName" + "linkerName": "linkName", + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", "name": "linkName", "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", "properties": { "authInfo": { - "authType": "secret", - "name": "name" - }, - "targetService": { - "type": "AzureResource", - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" + "name": "name", + "authType": "secret" }, - "secretStore": { - "keyVaultId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/kvname" - }, - "scope": "AKS-Namespace", "clientType": "dotnet", - "publicNetworkSolution": { - "action": "enable" - }, "configurationInfo": { - "deleteOrUpdateBehavior": "ForcedCleanup", + "additionalConfigurations": { + "throttlingLimit": "100" + }, "customizedKeys": { "AZURE_MYSQL_CONNECTIONSTRING": "myConnectionstring", "AZURE_MYSQL_SSLMODE": "mySslmode" }, - "additionalConfigurations": { - "throttlingLimit": "100" - } + "deleteOrUpdateBehavior": "ForcedCleanup" + }, + "publicNetworkSolution": { + "action": "enable" + }, + "scope": "AKS-Namespace", + "secretStore": { + "keyVaultId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/kvname" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" } }, "systemData": { @@ -43,5 +43,7 @@ } } } - } + }, + "operationId": "Linker_Get", + "title": "Linker" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/LinkerGenerateConfigurations.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/LinkerGenerateConfigurations.json index 20077dc3ba0b..0d2b2d1a745e 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/LinkerGenerateConfigurations.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/LinkerGenerateConfigurations.json @@ -1,13 +1,13 @@ { "parameters": { "api-version": "2024-07-01-preview", - "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app", "linkerName": "linkName", "parameters": { "customizedKeys": { "ASL_DocumentDb_ConnectionString": "MyConnectionstring" } - } + }, + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" }, "responses": { "200": { @@ -20,5 +20,7 @@ ] } } - } + }, + "operationId": "Linkers_GenerateConfigurations", + "title": "GenerateConfiguration" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/LinkerList.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/LinkerList.json index 99a8f52427c4..3a2ee5935b7a 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/LinkerList.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/LinkerList.json @@ -8,13 +8,13 @@ "body": { "value": [ { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ServiceLinker/links/linkName", "name": "linkName", "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ServiceLinker/links/linkName", "properties": { "authInfo": { - "authType": "secret", - "name": "username" + "name": "username", + "authType": "secret" }, "targetService": { "type": "AzureResource", @@ -28,5 +28,7 @@ ] } } - } + }, + "operationId": "Linker_List", + "title": "LinkerList" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ListDryrun.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ListDryrun.json index 4a8dde8c63f0..1d51ab23bccc 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ListDryrun.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ListDryrun.json @@ -8,15 +8,15 @@ "body": { "value": [ { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/dryruns/dryrunName", "name": "dryrunName", "type": "Microsoft.ServiceLinker/dryruns", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/dryruns/dryrunName", "properties": { "parameters": { "actionName": "createOrUpdate", "authInfo": { - "authType": "secret", - "name": "username" + "name": "username", + "authType": "secret" }, "targetService": { "type": "AzureResource", @@ -31,5 +31,7 @@ ] } } - } + }, + "operationId": "Linkers_ListDryrun", + "title": "ListDryrun" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/OperationsList.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/OperationsList.json index 905bfe616da0..8e7c1d847200 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/OperationsList.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/OperationsList.json @@ -8,177 +8,179 @@ "body": { "value": [ { + "name": "Microsoft.ServiceLinker/register/action", "display": { "description": "Register the subscription for Microsoft.ServiceLinker", "operation": "Register the Microsoft.ServiceLinker", "provider": "Microsoft.ServiceLinker", "resource": "Microsoft.ServiceLinker" }, - "isDataAction": false, - "name": "Microsoft.ServiceLinker/register/action" + "isDataAction": false }, { + "name": "Microsoft.ServiceLinker/unregister/action", "display": { "description": "Unregister the subscription for Microsoft.ServiceLinker", "operation": "Unregister the Microsoft.ServiceLinker", "provider": "Microsoft.ServiceLinker", "resource": "Microsoft.ServiceLinker" }, - "isDataAction": false, - "name": "Microsoft.ServiceLinker/unregister/action" + "isDataAction": false }, { + "name": "Microsoft.ServiceLinker/operations/read", "display": { "description": "read operations", "operation": "read_operations", "provider": "Microsoft.ServiceLinker", "resource": "operations" }, - "isDataAction": false, - "name": "Microsoft.ServiceLinker/operations/read" + "isDataAction": false }, { + "name": "Microsoft.ServiceLinker/dryruns/read", "display": { "description": "list dryrun jobs", "operation": "Dryrun_List", "provider": "Microsoft.ServiceLinker", "resource": "dryruns" }, - "isDataAction": false, - "name": "Microsoft.ServiceLinker/dryruns/read" + "isDataAction": false }, { + "name": "Microsoft.ServiceLinker/dryruns/read", "display": { "description": "get a dryrun job", "operation": "Dryrun_Get", "provider": "Microsoft.ServiceLinker", "resource": "dryruns" }, - "isDataAction": false, - "name": "Microsoft.ServiceLinker/dryruns/read" + "isDataAction": false }, { + "name": "Microsoft.ServiceLinker/dryruns/write", "display": { "description": "create a dryrun job to do necessary check before actual creation", "operation": "Dryrun_Create", "provider": "Microsoft.ServiceLinker", "resource": "dryruns" }, - "isDataAction": false, - "name": "Microsoft.ServiceLinker/dryruns/write" + "isDataAction": false }, { + "name": "Microsoft.ServiceLinker/dryruns/delete", "display": { "description": "delete a dryrun job", "operation": "Dryrun_Delete", "provider": "Microsoft.ServiceLinker", "resource": "dryruns" }, - "isDataAction": false, - "name": "Microsoft.ServiceLinker/dryruns/delete" + "isDataAction": false }, { + "name": "Microsoft.ServiceLinker/dryruns/write", "display": { "description": "add a dryrun job to do necessary check before actual creation", "operation": "Dryrun_Update", "provider": "Microsoft.ServiceLinker", "resource": "dryruns" }, - "isDataAction": false, - "name": "Microsoft.ServiceLinker/dryruns/write" + "isDataAction": false }, { + "name": "Microsoft.ServiceLinker/locations/operationStatuses/read", "display": { "description": "read operationStatuses", "operation": "read_operationStatuses", "provider": "Microsoft.ServiceLinker", "resource": "locations/operationStatuses" }, - "isDataAction": false, - "name": "Microsoft.ServiceLinker/locations/operationStatuses/read" + "isDataAction": false }, { + "name": "Microsoft.ServiceLinker/locations/operationStatuses/write", "display": { "description": "write operationStatuses", "operation": "write_operationStatuses", "provider": "Microsoft.ServiceLinker", "resource": "locations/operationStatuses" }, - "isDataAction": false, - "name": "Microsoft.ServiceLinker/locations/operationStatuses/write" + "isDataAction": false }, { + "name": "Microsoft.ServiceLinker/linkers/read", "display": { "description": "Returns list of Linkers which connects to the resource.", "operation": "Linker_List", "provider": "Microsoft.ServiceLinker", "resource": "linkers" }, - "isDataAction": false, - "name": "Microsoft.ServiceLinker/linkers/read" + "isDataAction": false }, { + "name": "Microsoft.ServiceLinker/linkers/read", "display": { "description": "Returns Linker resource for a given name.", "operation": "Linker_Get", "provider": "Microsoft.ServiceLinker", "resource": "linkers" }, - "isDataAction": false, - "name": "Microsoft.ServiceLinker/linkers/read" + "isDataAction": false }, { + "name": "Microsoft.ServiceLinker/linkers/write", "display": { "description": "Create or update linker resource.", "operation": "Linker_CreateOrUpdate", "provider": "Microsoft.ServiceLinker", "resource": "linkers" }, - "isDataAction": false, - "name": "Microsoft.ServiceLinker/linkers/write" + "isDataAction": false }, { + "name": "Microsoft.ServiceLinker/linkers/delete", "display": { "description": "Delete a link.", "operation": "Linker_Delete", "provider": "Microsoft.ServiceLinker", "resource": "linkers" }, - "isDataAction": false, - "name": "Microsoft.ServiceLinker/linkers/delete" + "isDataAction": false }, { + "name": "Microsoft.ServiceLinker/linkers/write", "display": { "description": "Operation to update an existing link.", "operation": "Linker_Update", "provider": "Microsoft.ServiceLinker", "resource": "linkers" }, - "isDataAction": false, - "name": "Microsoft.ServiceLinker/linkers/write" + "isDataAction": false }, { + "name": "Microsoft.ServiceLinker/linkers/validateLinker/action", "display": { "description": "Validate a link.", "operation": "Linker_Validate", "provider": "Microsoft.ServiceLinker", "resource": "linkers" }, - "isDataAction": false, - "name": "Microsoft.ServiceLinker/linkers/validateLinker/action" + "isDataAction": false }, { + "name": "Microsoft.ServiceLinker/linkers/listConfigurations/action", "display": { "description": "list source configurations for a linker.", "operation": "Linker_ListConfigurations", "provider": "Microsoft.ServiceLinker", "resource": "linkers" }, - "isDataAction": false, - "name": "Microsoft.ServiceLinker/linkers/listConfigurations/action" + "isDataAction": false } ] } } - } + }, + "operationId": "Operations_List", + "title": "GetConfiguration" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PatchConnector.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PatchConnector.json index a302ac667d38..ea476508fcdd 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PatchConnector.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PatchConnector.json @@ -1,31 +1,31 @@ { "parameters": { "api-version": "2024-07-01-preview", - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "test-rg", - "location": "westus", "connectorName": "connectorName", + "location": "westus", "parameters": { "properties": { - "targetService": { - "type": "AzureResource", - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" - }, "authInfo": { "authType": "servicePrincipalSecret", "clientId": "name", "principalId": "id", "secret": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" } } - } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", - "type": "Microsoft.ServiceLinker/links", "name": "linkName", + "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", "properties": { "authInfo": { "authType": "servicePrincipalSecret", @@ -40,13 +40,10 @@ } }, "202": { - "headers": { - "azure-asyncoperation": "http://azure.async.operation/status" - }, "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", - "type": "Microsoft.ServiceLinker/links", "name": "linkName", + "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", "properties": { "authInfo": { "authType": "servicePrincipalSecret", @@ -58,7 +55,12 @@ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" } } + }, + "headers": { + "azure-asyncoperation": "http://azure.async.operation/status" } } - } + }, + "operationId": "Connector_Update", + "title": "PatchConnector" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PatchDryrun.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PatchDryrun.json index c7da10d3eac5..47d2fb53682b 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PatchDryrun.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PatchDryrun.json @@ -1,44 +1,53 @@ { "parameters": { "api-version": "2024-07-01-preview", - "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app", "dryrunName": "dryrunName", "parameters": { "properties": { "parameters": { "actionName": "createOrUpdate", - "targetService": { - "type": "AzureResource", - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" - }, "authInfo": { - "authType": "secret", "name": "name", + "authType": "secret", "secretInfo": { "secretType": "rawValue", "value": "secret" } + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" } } } - } + }, + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/dryruns/dryrunName", - "type": "Microsoft.ServiceLinker/dryruns", "name": "dryrunName", + "type": "Microsoft.ServiceLinker/dryruns", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/dryruns/dryrunName", "properties": { + "operationPreviews": [ + { + "name": "configFirewallRule", + "description": "Config firewall rule for target service to allow source service access", + "action": "Microsoft.DocumentDb/databaseAccounts/write", + "operationType": "configNetwork", + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], "parameters": { "actionName": "createOrUpdate", + "authInfo": { + "name": "name", + "authType": "secret" + }, "targetService": { "type": "AzureResource", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" - }, - "authInfo": { - "authType": "secret", - "name": "name" } }, "prerequisiteResults": [ @@ -49,18 +58,9 @@ }, { "type": "permissionsMissing", - "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc", "permissions": [ "Microsoft.DocumentDb/databaseAccounts/write" - ] - } - ], - "operationPreviews": [ - { - "name": "configFirewallRule", - "operationType": "configNetwork", - "description": "Config firewall rule for target service to allow source service access", - "action": "Microsoft.DocumentDb/databaseAccounts/write", + ], "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" } ], @@ -73,5 +73,7 @@ "azure-AsyncOperation": "http://azure.async.operation/status" } } - } + }, + "operationId": "Linkers_UpdateDryrun", + "title": "PatchDryrun" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PatchLinker.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PatchLinker.json index 6a85c703e63b..d59fcdf32b2f 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PatchLinker.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PatchLinker.json @@ -1,29 +1,29 @@ { "parameters": { "api-version": "2024-07-01-preview", - "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app", "linkerName": "linkName", "parameters": { "properties": { - "targetService": { - "type": "AzureResource", - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" - }, "authInfo": { "authType": "servicePrincipalSecret", "clientId": "name", "principalId": "id", "secret": "secret" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" } } - } + }, + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", - "type": "Microsoft.ServiceLinker/links", "name": "linkName", + "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", "properties": { "authInfo": { "authType": "servicePrincipalSecret", @@ -39,9 +39,9 @@ }, "201": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", - "type": "Microsoft.ServiceLinker/links", "name": "linkName", + "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", "properties": { "authInfo": { "authType": "servicePrincipalSecret", @@ -55,5 +55,7 @@ } } } - } + }, + "operationId": "Linker_Update", + "title": "PatchLinker" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PutConnector.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PutConnector.json index b85bfd26ae2e..e3d60f16959f 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PutConnector.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PutConnector.json @@ -1,31 +1,31 @@ { "parameters": { "api-version": "2024-07-01-preview", - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "test-rg", - "location": "westus", "connectorName": "connectorName", + "location": "westus", "parameters": { "properties": { - "targetService": { - "type": "AzureResource", - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" - }, "authInfo": { "authType": "secret" }, "secretStore": { "keyVaultId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/test-kv" + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" } } - } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", - "type": "Microsoft.ServiceLinker/links", "name": "linkName", + "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", "properties": { "authInfo": { "authType": "secret" @@ -42,9 +42,9 @@ }, "201": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", - "type": "Microsoft.ServiceLinker/links", "name": "linkName", + "type": "Microsoft.ServiceLinker/links", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", "properties": { "authInfo": { "authType": "secret" @@ -59,5 +59,7 @@ } } } - } + }, + "operationId": "Connector_CreateOrUpdate", + "title": "PutConnector" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PutDryrun.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PutDryrun.json index 65e6713bb9c6..de373b5f8ce5 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PutDryrun.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PutDryrun.json @@ -1,44 +1,53 @@ { "parameters": { "api-version": "2024-07-01-preview", - "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app", "dryrunName": "dryrunName", "parameters": { "properties": { "parameters": { "actionName": "createOrUpdate", - "targetService": { - "type": "AzureResource", - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" - }, "authInfo": { - "authType": "secret", "name": "name", + "authType": "secret", "secretInfo": { "secretType": "rawValue", "value": "secret" } + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" } } } - } + }, + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/dryruns/dryrunName", - "type": "Microsoft.ServiceLinker/dryruns", "name": "dryrunName", + "type": "Microsoft.ServiceLinker/dryruns", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/dryruns/dryrunName", "properties": { + "operationPreviews": [ + { + "name": "configFirewallRule", + "description": "Config firewall rule for target service to allow source service access", + "action": "Microsoft.DocumentDb/databaseAccounts/write", + "operationType": "configNetwork", + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], "parameters": { "actionName": "createOrUpdate", + "authInfo": { + "name": "name", + "authType": "secret" + }, "targetService": { "type": "AzureResource", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" - }, - "authInfo": { - "authType": "secret", - "name": "name" } }, "prerequisiteResults": [ @@ -49,18 +58,9 @@ }, { "type": "permissionsMissing", - "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc", "permissions": [ "Microsoft.DocumentDb/databaseAccounts/write" - ] - } - ], - "operationPreviews": [ - { - "name": "configFirewallRule", - "operationType": "configNetwork", - "description": "Config firewall rule for target service to allow source service access", - "action": "Microsoft.DocumentDb/databaseAccounts/write", + ], "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" } ], @@ -70,19 +70,28 @@ }, "201": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/dryruns/dryrunName", - "type": "Microsoft.ServiceLinker/dryruns", "name": "dryrunName", + "type": "Microsoft.ServiceLinker/dryruns", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/dryruns/dryrunName", "properties": { + "operationPreviews": [ + { + "name": "configFirewallRule", + "description": "Config firewall rule for target service to allow source service access", + "action": "Microsoft.DocumentDb/databaseAccounts/write", + "operationType": "configNetwork", + "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" + } + ], "parameters": { "actionName": "createOrUpdate", + "authInfo": { + "name": "name", + "authType": "secret" + }, "targetService": { "type": "AzureResource", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db" - }, - "authInfo": { - "authType": "secret", - "name": "name" } }, "prerequisiteResults": [ @@ -93,18 +102,9 @@ }, { "type": "permissionsMissing", - "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc", "permissions": [ "Microsoft.DocumentDb/databaseAccounts/write" - ] - } - ], - "operationPreviews": [ - { - "name": "configFirewallRule", - "operationType": "configNetwork", - "description": "Config firewall rule for target service to allow source service access", - "action": "Microsoft.DocumentDb/databaseAccounts/write", + ], "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc" } ], @@ -112,5 +112,7 @@ } } } - } + }, + "operationId": "Linkers_CreateDryrun", + "title": "PutDryrun" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PutLinker.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PutLinker.json index f678acb875be..2dedc0b12bef 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PutLinker.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/PutLinker.json @@ -1,68 +1,70 @@ { "parameters": { "api-version": "2024-07-01-preview", - "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app", "linkerName": "linkName", "parameters": { "properties": { - "targetService": { - "type": "AzureResource", - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DBforPostgreSQL/servers/test-pg/databases/test-db" - }, - "vNetSolution": { - "type": "serviceEndpoint" - }, "authInfo": { - "authType": "secret", "name": "name", + "authType": "secret", "secretInfo": { "secretType": "rawValue", "value": "secret" } + }, + "targetService": { + "type": "AzureResource", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DBforPostgreSQL/servers/test-pg/databases/test-db" + }, + "vNetSolution": { + "type": "serviceEndpoint" } } - } + }, + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" }, "responses": { "200": { "body": { - "type": "Microsoft.ServiceLinker/links", "name": "linkName", + "type": "Microsoft.ServiceLinker/links", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", "properties": { "authInfo": { - "authType": "secret", - "name": "name" - }, - "vNetSolution": { - "type": "serviceEndpoint" + "name": "name", + "authType": "secret" }, "targetService": { "type": "AzureResource", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DBforPostgreSQL/servers/test-pg/databases/test-db" + }, + "vNetSolution": { + "type": "serviceEndpoint" } } } }, "201": { "body": { - "type": "Microsoft.ServiceLinker/links", "name": "linkName", + "type": "Microsoft.ServiceLinker/links", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app/providers/Microsoft.ServiceLinker/links/linkName", "properties": { "authInfo": { - "authType": "secret", - "name": "name" - }, - "vNetSolution": { - "type": "serviceEndpoint" + "name": "name", + "authType": "secret" }, "targetService": { "type": "AzureResource", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DBforPostgreSQL/servers/test-pg/databases/test-db" + }, + "vNetSolution": { + "type": "serviceEndpoint" } } } } - } + }, + "operationId": "Linker_CreateOrUpdate", + "title": "PutLinker" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ValidateConnectorSuccess.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ValidateConnectorSuccess.json index a2e570267b75..0a1b07843312 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ValidateConnectorSuccess.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ValidateConnectorSuccess.json @@ -1,19 +1,19 @@ { "parameters": { "api-version": "2024-07-01-preview", - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "test-rg", + "connectorName": "connectorName", "location": "westus", - "connectorName": "connectorName" + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "properties": { + "authType": "secret", "isConnectionAvailable": true, - "reportStartTimeUtc": "2020-07-12T22:05:09Z", "reportEndTimeUtc": "2020-07-12T22:06:09Z", - "authType": "secret", + "reportStartTimeUtc": "2020-07-12T22:05:09Z", "validationDetail": [ { "name": "TargetExistence", @@ -34,5 +34,7 @@ "azure-AsyncOperation": "http://azure.async.operation/status" } } - } + }, + "operationId": "Connector_Validate", + "title": "ValidateConnectorSuccess" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ValidateLinkerSuccess.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ValidateLinkerSuccess.json index 3bb0f31ce67f..6225e5426c29 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ValidateLinkerSuccess.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/examples/ValidateLinkerSuccess.json @@ -1,19 +1,19 @@ { "parameters": { "api-version": "2024-07-01-preview", - "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app", - "linkerName": "linkName" + "linkerName": "linkName", + "resourceUri": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Web/sites/test-app" }, "responses": { "200": { "body": { "properties": { + "authType": "secret", "isConnectionAvailable": true, - "reportStartTimeUtc": "2020-07-12T22:05:09Z", "reportEndTimeUtc": "2020-07-12T22:06:09Z", + "reportStartTimeUtc": "2020-07-12T22:05:09Z", "sourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db", "targetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.DocumentDb/databaseAccounts/test-acc/mongodbDatabases/test-db", - "authType": "secret", "validationDetail": [ { "name": "TargetExistence", @@ -34,5 +34,7 @@ "azure-AsyncOperation": "http://azure.async.operation/status" } } - } + }, + "operationId": "Linker_Validate", + "title": "ValidateLinkerSuccess" } diff --git a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/servicelinker.json b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/servicelinker.json index 3be7908389ae..1c04a3836293 100644 --- a/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/servicelinker.json +++ b/specification/servicelinker/resource-manager/Microsoft.ServiceLinker/preview/2024-07-01-preview/servicelinker.json @@ -2,17 +2,22 @@ "swagger": "2.0", "info": { "title": "Microsoft.ServiceLinker", + "version": "2024-07-01-preview", "description": "Microsoft.ServiceLinker provider", - "version": "2024-07-01-preview" + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, - "host": "management.azure.com", "schemes": [ "https" ], - "consumes": [ + "host": "management.azure.com", + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], "security": [ @@ -25,149 +30,193 @@ "securityDefinitions": { "azure_auth": { "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", "scopes": { "user_impersonation": "impersonate your user account" } } }, + "tags": [ + { + "name": "Operations" + }, + { + "name": "DryrunResources" + }, + { + "name": "Linkers" + }, + { + "name": "LinkerResources" + }, + { + "name": "Linker" + } + ], "paths": { - "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.ServiceLinker/locations/{location}/dryruns": { + "/{resourceUri}/providers/Microsoft.ServiceLinker/daprConfigurations": { "get": { - "tags": [ - "Connector" - ], - "operationId": "Connector_ListDryrun", - "description": "list dryrun jobs", - "x-ms-examples": { - "ConnectorDryrunList": { - "$ref": "./examples/ConnectorDryrunList.json" - } - }, + "operationId": "Linkers_ListDaprConfigurations", + "description": "List the dapr configuration supported by Service Connector.", "parameters": [ { - "$ref": "#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource to be connected.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/DaprConfigurationList" + } }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GetDaprConfigurations": { + "$ref": "./examples/GetDaprConfigurations.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/{resourceUri}/providers/Microsoft.ServiceLinker/dryruns": { + "get": { + "operationId": "Linkers_ListDryrun", + "tags": [ + "Linkers" + ], + "description": "list dryrun jobs", + "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource to be connected.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true } ], "responses": { "200": { - "description": "OK. The request has succeeded.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/DryrunList" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, + "x-ms-examples": { + "ListDryrun": { + "$ref": "./examples/ListDryrun.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.ServiceLinker/locations/{location}/dryruns/{dryrunName}": { + "/{resourceUri}/providers/Microsoft.ServiceLinker/dryruns/{dryrunName}": { "get": { + "operationId": "Linkers_GetDryrun", "tags": [ - "Connector" + "Linkers" ], - "operationId": "Connector_GetDryrun", "description": "get a dryrun job", - "x-ms-examples": { - "ConnectorDryrunGet": { - "$ref": "./examples/ConnectorDryrunGet.json" - } - }, "parameters": [ - { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" - }, { "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "name": "dryrunName", + "name": "resourceUri", "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource to be connected.", "required": true, "type": "string", + "x-ms-skip-url-encoding": true + }, + { + "name": "dryrunName", + "in": "path", "description": "The name of dryrun.", - "x-ms-parameter-location": "method" + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK. The request has succeeded.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/DryrunResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "GetDryrun": { + "$ref": "./examples/GetDryrun.json" + } } }, "put": { + "operationId": "Linkers_CreateDryrun", "tags": [ - "Connector" + "Linkers" ], - "operationId": "Connector_CreateDryrun", "description": "create a dryrun job to do necessary check before actual creation", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "ConnectorDryrunCreate": { - "$ref": "./examples/ConnectorDryrunCreate.json" - } - }, "parameters": [ - { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" - }, { "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "name": "dryrunName", + "name": "resourceUri", "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource to be connected.", "required": true, "type": "string", + "x-ms-skip-url-encoding": true + }, + { + "name": "dryrunName", + "in": "path", "description": "The name of dryrun.", - "x-ms-parameter-location": "method" + "required": true, + "type": "string" }, { "name": "parameters", - "description": "dryrun resource.", "in": "body", + "description": "dryrun resource.", "required": true, "schema": { "$ref": "#/definitions/DryrunResource" @@ -176,65 +225,75 @@ ], "responses": { "200": { - "description": "OK. The request has succeeded.", + "description": "Resource 'DryrunResource' update operation succeeded", "schema": { "$ref": "#/definitions/DryrunResource" } }, "201": { - "description": "Long running operation", + "description": "Resource 'DryrunResource' create operation succeeded", "schema": { "$ref": "#/definitions/DryrunResource" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } - } - }, - "patch": { - "tags": [ - "Connector" - ], - "operationId": "Connector_UpdateDryrun", - "description": "update a dryrun job to do necessary check before actual creation", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" }, "x-ms-examples": { - "ConnectorDryrunUpdate": { - "$ref": "./examples/ConnectorDryrunUpdate.json" + "PutDryrun": { + "$ref": "./examples/PutDryrun.json" } }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/DryrunResource" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "Linkers_UpdateDryrun", + "tags": [ + "Linkers" + ], + "description": "add a dryrun job to do necessary check before actual creation", "parameters": [ - { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" - }, { "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "name": "dryrunName", + "name": "resourceUri", "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource to be connected.", "required": true, "type": "string", + "x-ms-skip-url-encoding": true + }, + { + "name": "dryrunName", + "in": "path", "description": "The name of dryrun.", - "x-ms-parameter-location": "method" + "required": true, + "type": "string" }, { "name": "parameters", - "description": "dryrun resource.", "in": "body", + "description": "dryrun resource.", "required": true, "schema": { "$ref": "#/definitions/DryrunPatch" @@ -243,187 +302,205 @@ ], "responses": { "200": { - "description": "OK. The request has succeeded.", + "description": "Resource 'DryrunResource' update operation succeeded", "schema": { "$ref": "#/definitions/DryrunResource" } }, "202": { - "description": "Accepted - Returns this status until the asynchronous operation has completed." + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + } + } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } - } + }, + "x-ms-examples": { + "PatchDryrun": { + "$ref": "./examples/PatchDryrun.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/DryrunResource" + }, + "x-ms-long-running-operation": true }, "delete": { + "operationId": "Linkers_DeleteDryrun", "tags": [ - "Connector" + "Linkers" ], - "operationId": "Connector_DeleteDryrun", "description": "delete a dryrun job", - "x-ms-examples": { - "ConnectorDryrunDelete": { - "$ref": "./examples/ConnectorDryrunDelete.json" - } - }, "parameters": [ - { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" - }, { "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "name": "dryrunName", + "name": "resourceUri", "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource to be connected.", "required": true, "type": "string", + "x-ms-skip-url-encoding": true + }, + { + "name": "dryrunName", + "in": "path", "description": "The name of dryrun.", - "x-ms-parameter-location": "method" + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK. The job is deleted." + "description": "Resource deleted successfully." }, "204": { - "description": "Deleted. The job is not found." + "description": "Resource does not exist." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "DeleteDryrun": { + "$ref": "./examples/DeleteDryrun.json" + } } } }, - "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.ServiceLinker/locations/{location}/connectors": { + "/{resourceUri}/providers/Microsoft.ServiceLinker/linkers": { "get": { - "deprecated": false, - "description": "Returns list of connector which connects to the resource, which supports to config the target service during the resource provision.", - "operationId": "Connector_List", - "x-ms-examples": { - "ConnectorList": { - "$ref": "./examples/ConnectorList.json" - } - }, + "operationId": "Linker_List", + "tags": [ + "Linker" + ], + "description": "Returns list of Linkers which connects to the resource. which supports to config both application and target service during the resource provision.", "parameters": [ { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource to be connected.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true } ], "responses": { "200": { - "description": "Connector details.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/ResourceList" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, + "x-ms-examples": { + "LinkerList": { + "$ref": "./examples/LinkerList.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.ServiceLinker/locations/{location}/connectors/{connectorName}": { + "/{resourceUri}/providers/Microsoft.ServiceLinker/linkers/{linkerName}": { "get": { - "description": "Returns Connector resource for a given name.", - "operationId": "Connector_Get", - "x-ms-examples": { - "Connector": { - "$ref": "./examples/Connectors.json" - } - }, + "operationId": "Linker_Get", + "tags": [ + "Linker" + ], + "description": "Returns Linker resource for a given name.", "parameters": [ { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ConnectorNameParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource to be connected.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "linkerName", + "in": "path", + "description": "The name Linker resource.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "Connector details.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/LinkerResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } - } - }, - "put": { - "description": "Create or update Connector resource.", - "operationId": "Connector_CreateOrUpdate", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" }, "x-ms-examples": { - "PutConnector": { - "$ref": "./examples/PutConnector.json" + "Linker": { + "$ref": "./examples/Linker.json" } - }, + } + }, + "put": { + "operationId": "Linker_CreateOrUpdate", + "tags": [ + "Linker" + ], + "description": "Create or update Linker resource.", "parameters": [ { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ConnectorNameParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource to be connected.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "linkerName", + "in": "path", + "description": "The name Linker resource.", + "required": true, + "type": "string" }, { "name": "parameters", - "description": "Connector details.", "in": "body", + "description": "Linker details.", "required": true, "schema": { "$ref": "#/definitions/LinkerResource" @@ -432,110 +509,75 @@ ], "responses": { "200": { - "description": "Successful.", + "description": "Resource 'LinkerResource' update operation succeeded", "schema": { "$ref": "#/definitions/LinkerResource" } }, "201": { - "description": "Long running operation.", + "description": "Resource 'LinkerResource' create operation succeeded", "schema": { "$ref": "#/definitions/LinkerResource" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } - } - }, - "delete": { - "tags": [ - "Connector" - ], - "operationId": "Connector_Delete", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" }, - "description": "Delete a Connector.", "x-ms-examples": { - "DeleteConnector": { - "$ref": "./examples/DeleteConnector.json" + "PutLinker": { + "$ref": "./examples/PutLinker.json" } }, - "parameters": [ - { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" - }, - { - "$ref": "#/parameters/ConnectorNameParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK. The Connector is deleted." - }, - "202": { - "description": "Long running operation." - }, - "204": { - "description": "Deleted. The Connector is not found." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - } + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/LinkerResource" + }, + "x-ms-long-running-operation": true }, "patch": { + "operationId": "Linker_Update", "tags": [ - "Connector" + "Linker" ], - "operationId": "Connector_Update", - "description": "Operation to update an existing Connector.", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "PatchConnector": { - "$ref": "./examples/PatchConnector.json" - } - }, + "description": "Operation to update an existing Linker.", "parameters": [ { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ConnectorNameParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource to be connected.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "linkerName", + "in": "path", + "description": "The name Linker resource.", + "required": true, + "type": "string" }, { "name": "parameters", - "description": "Connector details.", "in": "body", + "description": "Linker details.", "required": true, "schema": { "$ref": "#/definitions/LinkerPatch" @@ -544,110 +586,136 @@ ], "responses": { "200": { - "description": "Success. The response describes a Connector.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/LinkerResource" } }, - "202": { - "description": "Long running operation.", + "201": { + "description": "Resource 'LinkerResource' create operation succeeded", "schema": { "$ref": "#/definitions/LinkerResource" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } - } - } - }, - "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.ServiceLinker/locations/{location}/connectors/{connectorName}/validate": { - "post": { - "tags": [ - "Connector" - ], - "operationId": "Connector_Validate", - "description": "Validate a Connector.", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" }, "x-ms-examples": { - "ValidateConnectorSuccess": { - "$ref": "./examples/ValidateConnectorSuccess.json" + "PatchLinker": { + "$ref": "./examples/PatchLinker.json" } }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/LinkerResource" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "Linker_Delete", + "tags": [ + "Linker" + ], + "description": "Delete a Linker.", "parameters": [ { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ConnectorNameParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource to be connected.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "linkerName", + "in": "path", + "description": "The name Linker resource.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK. The request has succeeded.", - "schema": { - "$ref": "#/definitions/ValidateOperationResult" - } + "description": "Resource deleted successfully." }, "202": { - "description": "Accepted - Returns this status until the asynchronous operation has completed." + "description": "Resource deletion accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } - } + }, + "x-ms-examples": { + "DeleteLinker": { + "$ref": "./examples/DeleteLinker.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.ServiceLinker/locations/{location}/connectors/{connectorName}/generateConfigurations": { + "/{resourceUri}/providers/Microsoft.ServiceLinker/linkers/{linkerName}/generateConfigurations": { "post": { + "operationId": "Linkers_GenerateConfigurations", "tags": [ - "Connector" + "Linker" ], - "operationId": "Connector_GenerateConfigurations", - "description": "Generate configurations for a Connector.", - "x-ms-examples": { - "GenerateConfiguration": { - "$ref": "./examples/GenerateConfigurations.json" - } - }, + "description": "Generate configurations for a Linker.", "parameters": [ { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ConnectorNameParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource to be connected.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "linkerName", + "in": "path", + "description": "The name Linker resource.", + "required": true, + "type": "string" }, { "name": "parameters", - "description": "Connection Info, including format, secret store, etc", "in": "body", + "description": "Connection Info, including format, secret store, etc", "required": false, "schema": { "$ref": "#/definitions/ConfigurationInfo" @@ -656,939 +724,1257 @@ ], "responses": { "200": { - "description": "OK. The request has succeeded.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/ConfigurationResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "GenerateConfiguration": { + "$ref": "./examples/LinkerGenerateConfigurations.json" + } } } }, - "/{resourceUri}/providers/Microsoft.ServiceLinker/linkers": { - "get": { - "deprecated": false, - "description": "Returns list of Linkers which connects to the resource. which supports to config both application and target service during the resource provision.", - "operationId": "Linker_List", - "x-ms-examples": { - "LinkerList": { - "$ref": "./examples/LinkerList.json" - } - }, + "/{resourceUri}/providers/Microsoft.ServiceLinker/linkers/{linkerName}/listConfigurations": { + "post": { + "operationId": "Linker_ListConfigurations", + "tags": [ + "Linker" + ], + "description": "list source configurations for a Linker.", "parameters": [ { - "$ref": "#/parameters/ResourceUriParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource to be connected.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true + }, + { + "name": "linkerName", + "in": "path", + "description": "The name Linker resource.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "Linker details.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ResourceList" + "$ref": "#/definitions/ConfigurationResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" + "x-ms-examples": { + "GetConfiguration": { + "$ref": "./examples/GetConfigurations.json" + } } } }, - "/{resourceUri}/providers/Microsoft.ServiceLinker/linkers/{linkerName}": { - "get": { - "description": "Returns Linker resource for a given name.", - "operationId": "Linker_Get", - "x-ms-examples": { - "Linker": { - "$ref": "./examples/Linker.json" - } - }, + "/{resourceUri}/providers/Microsoft.ServiceLinker/linkers/{linkerName}/validateLinker": { + "post": { + "operationId": "Linker_Validate", + "tags": [ + "Linker" + ], + "description": "Validate a Linker.", "parameters": [ - { - "$ref": "#/parameters/ResourceUriParameter" - }, { "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/LinkerNameParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource to be connected.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true + }, + { + "name": "linkerName", + "in": "path", + "description": "The name Linker resource.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "Linker details.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/LinkerResource" + "$ref": "#/definitions/ValidateOperationResult" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } - } - }, - "put": { - "description": "Create or update Linker resource.", - "operationId": "Linker_CreateOrUpdate", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" }, "x-ms-examples": { - "PutLinker": { - "$ref": "./examples/PutLinker.json" + "ValidateLinkerSuccess": { + "$ref": "./examples/ValidateLinkerSuccess.json" } }, + "x-ms-long-running-operation-options": { + "final-state-via": "location", + "final-state-schema": "#/definitions/ValidateOperationResult" + }, + "x-ms-long-running-operation": true + } + }, + "/providers/Microsoft.ServiceLinker/configurationNames": { + "get": { + "operationId": "ConfigurationNames_List", + "description": "Lists the configuration names generated by Service Connector for all target, client types, auth types.", "parameters": [ - { - "$ref": "#/parameters/ResourceUriParameter" - }, { "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/LinkerNameParameter" + "name": "$filter", + "in": "query", + "description": "OData filter options.", + "required": false, + "type": "string" }, { - "name": "parameters", - "description": "Linker details.", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/LinkerResource" - } + "name": "$skipToken", + "in": "query", + "description": "OData skipToken option for pagination.", + "required": false, + "type": "string" } ], "responses": { "200": { - "description": "Successful.", - "schema": { - "$ref": "#/definitions/LinkerResource" - } - }, - "201": { - "description": "Long running operation.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/LinkerResource" + "$ref": "#/definitions/ConfigurationNameResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } - } - }, - "delete": { - "tags": [ - "Linkers" - ], - "operationId": "Linker_Delete", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" }, - "description": "Delete a Linker.", "x-ms-examples": { - "DeleteLinker": { - "$ref": "./examples/DeleteLinker.json" + "GetConfigurationNames": { + "$ref": "./examples/ConfigurationNamesList.json" } }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.ServiceLinker/operations": { + "get": { + "operationId": "Operations_List", + "tags": [ + "Operations" + ], + "description": "List the operations for the provider", "parameters": [ - { - "$ref": "#/parameters/ResourceUriParameter" - }, { "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/LinkerNameParameter" } ], "responses": { "200": { - "description": "OK. The Linker is deleted." - }, - "202": { - "description": "Long running operation." - }, - "204": { - "description": "Deleted. The Linker is not found." + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/OperationListResult" + } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } - } - }, - "patch": { - "tags": [ - "Linkers" - ], - "operationId": "Linker_Update", - "description": "Operation to update an existing Linker.", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" }, "x-ms-examples": { - "PatchLinker": { - "$ref": "./examples/PatchLinker.json" + "GetConfiguration": { + "$ref": "./examples/OperationsList.json" } }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceLinker/locations/{location}/connectors": { + "get": { + "operationId": "Connector_List", + "tags": [ + "LinkerResources" + ], + "description": "Returns list of connector which connects to the resource, which supports to config the target service during the resource provision.", "parameters": [ { - "$ref": "#/parameters/ResourceUriParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/LinkerNameParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "parameters", - "description": "Linker details.", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/LinkerPatch" - } + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" } ], "responses": { "200": { - "description": "Success. The response describes a Linker.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/LinkerResource" - } - }, - "201": { - "description": "Long running operation.", - "schema": { - "$ref": "#/definitions/LinkerResource" + "$ref": "#/definitions/ResourceList" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "ConnectorList": { + "$ref": "./examples/ConnectorList.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/{resourceUri}/providers/Microsoft.ServiceLinker/linkers/{linkerName}/validateLinker": { - "post": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceLinker/locations/{location}/connectors/{connectorName}": { + "get": { + "operationId": "Connector_Get", "tags": [ - "Linkers" + "LinkerResources" ], - "operationId": "Linker_Validate", - "description": "Validate a Linker.", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, - "x-ms-examples": { - "ValidateLinkerSuccess": { - "$ref": "./examples/ValidateLinkerSuccess.json" - } - }, + "description": "Returns Connector resource for a given name.", "parameters": [ { - "$ref": "#/parameters/ResourceUriParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/LinkerNameParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + }, + { + "name": "connectorName", + "in": "path", + "description": "The name of the LinkerResource", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK. The request has succeeded.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ValidateOperationResult" + "$ref": "#/definitions/LinkerResource" } }, - "202": { - "description": "Accepted - Returns this status until the asynchronous operation has completed." - }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "Connector": { + "$ref": "./examples/Connectors.json" + } } - } - }, - "/{resourceUri}/providers/Microsoft.ServiceLinker/linkers/{linkerName}/listConfigurations": { - "post": { + }, + "put": { + "operationId": "Connector_CreateOrUpdate", "tags": [ - "Linkers" + "LinkerResources" ], - "operationId": "Linker_ListConfigurations", - "description": "list source configurations for a Linker.", - "x-ms-examples": { - "GetConfiguration": { - "$ref": "./examples/GetConfigurations.json" - } - }, + "description": "Create or update Connector resource.", "parameters": [ { - "$ref": "#/parameters/ResourceUriParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + }, + { + "name": "connectorName", + "in": "path", + "description": "The name of the LinkerResource", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/LinkerNameParameter" + "name": "parameters", + "in": "body", + "description": "Connector details.", + "required": true, + "schema": { + "$ref": "#/definitions/LinkerResource" + } } ], "responses": { "200": { - "description": "OK. The request has succeeded.", + "description": "Resource 'LinkerResource' update operation succeeded", "schema": { - "$ref": "#/definitions/ConfigurationResult" + "$ref": "#/definitions/LinkerResource" + } + }, + "201": { + "description": "Resource 'LinkerResource' create operation succeeded", + "schema": { + "$ref": "#/definitions/LinkerResource" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } - } - } - }, - "/{resourceUri}/providers/Microsoft.ServiceLinker/dryruns": { - "get": { - "tags": [ - "Linkers" - ], - "operationId": "Linkers_ListDryrun", - "description": "list dryrun jobs", + }, "x-ms-examples": { - "ListDryrun": { - "$ref": "./examples/ListDryrun.json" + "PutConnector": { + "$ref": "./examples/PutConnector.json" } }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/LinkerResource" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "Connector_Update", + "tags": [ + "LinkerResources" + ], + "description": "Operation to update an existing Connector.", "parameters": [ { - "$ref": "#/parameters/ResourceUriParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK. The request has succeeded.", - "schema": { - "$ref": "#/definitions/DryrunList" - } + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/{resourceUri}/providers/Microsoft.ServiceLinker/dryruns/{dryrunName}": { - "get": { - "tags": [ - "Linkers" - ], - "operationId": "Linkers_GetDryrun", - "description": "get a dryrun job", - "x-ms-examples": { - "GetDryrun": { - "$ref": "./examples/GetDryrun.json" - } - }, - "parameters": [ { - "$ref": "#/parameters/ResourceUriParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" }, { - "name": "dryrunName", + "name": "connectorName", "in": "path", + "description": "The name of the LinkerResource", "required": true, - "type": "string", - "description": "The name of dryrun.", - "x-ms-parameter-location": "method" + "type": "string" + }, + { + "name": "parameters", + "in": "body", + "description": "Connector details.", + "required": true, + "schema": { + "$ref": "#/definitions/LinkerPatch" + } } ], "responses": { "200": { - "description": "OK. The request has succeeded.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/DryrunResource" + "$ref": "#/definitions/LinkerResource" + } + }, + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "schema": { + "$ref": "#/definitions/LinkerResource" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } - } - }, - "put": { - "tags": [ - "Linkers" - ], - "operationId": "Linkers_CreateDryrun", - "description": "create a dryrun job to do necessary check before actual creation", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" }, "x-ms-examples": { - "PutDryrun": { - "$ref": "./examples/PutDryrun.json" + "PatchConnector": { + "$ref": "./examples/PatchConnector.json" } }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/LinkerResource" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "Connector_Delete", + "tags": [ + "LinkerResources" + ], + "description": "Delete a Connector.", "parameters": [ { - "$ref": "#/parameters/ResourceUriParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "dryrunName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of dryrun.", - "x-ms-parameter-location": "method" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "parameters", - "description": "dryrun resource.", - "in": "body", + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + }, + { + "name": "connectorName", + "in": "path", + "description": "The name of the LinkerResource", "required": true, - "schema": { - "$ref": "#/definitions/DryrunResource" - } + "type": "string" } ], "responses": { "200": { - "description": "OK. The request has succeeded.", - "schema": { - "$ref": "#/definitions/DryrunResource" - } + "description": "Resource deleted successfully." }, - "201": { - "description": "Long running operation", - "schema": { - "$ref": "#/definitions/DryrunResource" + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, + "204": { + "description": "Resource does not exist." + }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } - } - }, - "patch": { - "tags": [ - "Linkers" - ], - "operationId": "Linkers_UpdateDryrun", - "description": "add a dryrun job to do necessary check before actual creation", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" }, "x-ms-examples": { - "PatchDryrun": { - "$ref": "./examples/PatchDryrun.json" + "DeleteConnector": { + "$ref": "./examples/DeleteConnector.json" } }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceLinker/locations/{location}/connectors/{connectorName}/generateConfigurations": { + "post": { + "operationId": "Connector_GenerateConfigurations", + "tags": [ + "LinkerResources" + ], + "description": "Generate configurations for a Connector.", "parameters": [ { - "$ref": "#/parameters/ResourceUriParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "dryrunName", + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + }, + { + "name": "connectorName", "in": "path", + "description": "The name of the LinkerResource", "required": true, - "type": "string", - "description": "The name of dryrun.", - "x-ms-parameter-location": "method" + "type": "string" }, { "name": "parameters", - "description": "dryrun resource.", "in": "body", - "required": true, + "description": "Connection Info, including format, secret store, etc", + "required": false, "schema": { - "$ref": "#/definitions/DryrunPatch" + "$ref": "#/definitions/ConfigurationInfo" } } ], "responses": { "200": { - "description": "OK. The request has succeeded.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/DryrunResource" + "$ref": "#/definitions/ConfigurationResult" } }, - "202": { - "description": "Accepted - Returns this status until the asynchronous operation has completed." - }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "GenerateConfiguration": { + "$ref": "./examples/GenerateConfigurations.json" + } } - }, - "delete": { + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceLinker/locations/{location}/connectors/{connectorName}/validate": { + "post": { + "operationId": "Connector_Validate", "tags": [ - "Linkers" + "LinkerResources" ], - "operationId": "Linkers_DeleteDryrun", - "description": "delete a dryrun job", - "x-ms-examples": { - "DeleteDryrun": { - "$ref": "./examples/DeleteDryrun.json" - } - }, + "description": "Validate a Connector.", "parameters": [ { - "$ref": "#/parameters/ResourceUriParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "dryrunName", + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + }, + { + "name": "connectorName", "in": "path", + "description": "The name of the LinkerResource", "required": true, - "type": "string", - "description": "The name of dryrun.", - "x-ms-parameter-location": "method" + "type": "string" } ], "responses": { "200": { - "description": "OK. The job is deleted." + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ValidateOperationResult" + } }, - "204": { - "description": "Deleted. The job is not found." + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } - } + }, + "x-ms-examples": { + "ValidateConnectorSuccess": { + "$ref": "./examples/ValidateConnectorSuccess.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location", + "final-state-schema": "#/definitions/ValidateOperationResult" + }, + "x-ms-long-running-operation": true } }, - "/{resourceUri}/providers/Microsoft.ServiceLinker/linkers/{linkerName}/generateConfigurations": { - "post": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceLinker/locations/{location}/dryruns": { + "get": { + "operationId": "Connector_ListDryrun", "tags": [ - "Linkers" + "DryrunResources" ], - "operationId": "Linkers_GenerateConfigurations", - "description": "Generate configurations for a Linker.", - "x-ms-examples": { - "GenerateConfiguration": { - "$ref": "./examples/LinkerGenerateConfigurations.json" - } - }, + "description": "list dryrun jobs", "parameters": [ { - "$ref": "#/parameters/ResourceUriParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/LinkerNameParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "parameters", - "description": "Connection Info, including format, secret store, etc", - "in": "body", - "required": false, - "schema": { - "$ref": "#/definitions/ConfigurationInfo" - } + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" } ], "responses": { "200": { - "description": "OK. The request has succeeded.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ConfigurationResult" + "$ref": "#/definitions/DryrunList" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "ConnectorDryrunList": { + "$ref": "./examples/ConnectorDryrunList.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/providers/Microsoft.ServiceLinker/operations": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceLinker/locations/{location}/dryruns/{dryrunName}": { "get": { + "operationId": "Connector_GetDryrun", "tags": [ - "Operations" + "DryrunResources" ], - "operationId": "Operations_List", - "description": "Lists the available ServiceLinker REST API operations.", - "x-ms-examples": { - "GetConfiguration": { - "$ref": "./examples/OperationsList.json" - } - }, + "description": "get a dryrun job", "parameters": [ { "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + }, + { + "name": "dryrunName", + "in": "path", + "description": "The name of the DryrunResource", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK. The request has succeeded.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/OperationListResult" + "$ref": "#/definitions/DryrunResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" + "x-ms-examples": { + "ConnectorDryrunGet": { + "$ref": "./examples/ConnectorDryrunGet.json" + } } - } - }, - "/providers/Microsoft.ServiceLinker/configurationNames": { - "get": { + }, + "put": { + "operationId": "Connector_CreateDryrun", "tags": [ - "ConfigurationNames" + "DryrunResources" ], - "operationId": "ConfigurationNames_List", - "description": "Lists the configuration names generated by Service Connector for all target, client types, auth types.", + "description": "create a dryrun job to do necessary check before actual creation", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + }, + { + "name": "dryrunName", + "in": "path", + "description": "The name of the DryrunResource", + "required": true, + "type": "string" + }, + { + "name": "parameters", + "in": "body", + "description": "dryrun resource.", + "required": true, + "schema": { + "$ref": "#/definitions/DryrunResource" + } + } + ], + "responses": { + "200": { + "description": "Resource 'DryrunResource' update operation succeeded", + "schema": { + "$ref": "#/definitions/DryrunResource" + } + }, + "201": { + "description": "Resource 'DryrunResource' create operation succeeded", + "schema": { + "$ref": "#/definitions/DryrunResource" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, "x-ms-examples": { - "GetConfigurationNames": { - "$ref": "./examples/ConfigurationNamesList.json" + "ConnectorDryrunCreate": { + "$ref": "./examples/ConnectorDryrunCreate.json" } }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/DryrunResource" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "Connector_UpdateDryrun", + "tags": [ + "DryrunResources" + ], + "description": "update a dryrun job to do necessary check before actual creation", "parameters": [ { "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "name": "$filter", - "in": "query", - "required": false, - "type": "string", - "description": "OData filter options." + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "$skipToken", - "in": "query", - "required": false, - "type": "string", - "description": "OData skipToken option for pagination." + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + }, + { + "name": "dryrunName", + "in": "path", + "description": "The name of the DryrunResource", + "required": true, + "type": "string" + }, + { + "name": "parameters", + "in": "body", + "description": "dryrun resource.", + "required": true, + "schema": { + "$ref": "#/definitions/DryrunPatch" + } } ], "responses": { "200": { - "description": "OK. The request has succeeded.", + "description": "Resource 'DryrunResource' update operation succeeded", "schema": { - "$ref": "#/definitions/ConfigurationNameResult" + "$ref": "#/definitions/DryrunResource" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/{resourceUri}/providers/Microsoft.ServiceLinker/daprConfigurations": { - "get": { - "tags": [ - "Linkers" - ], - "operationId": "Linkers_ListDaprConfigurations", - "description": "List the dapr configuration supported by Service Connector.", "x-ms-examples": { - "GetDaprConfigurations": { - "$ref": "./examples/GetDaprConfigurations.json" + "ConnectorDryrunUpdate": { + "$ref": "./examples/ConnectorDryrunUpdate.json" } }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/DryrunResource" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "Connector_DeleteDryrun", + "tags": [ + "DryrunResources" + ], + "description": "delete a dryrun job", "parameters": [ { - "$ref": "#/parameters/ResourceUriParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + }, + { + "name": "dryrunName", + "in": "path", + "description": "The name of the DryrunResource", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK. The request has succeeded.", - "schema": { - "$ref": "#/definitions/DaprConfigurationList" - } + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" + "x-ms-examples": { + "ConnectorDryrunDelete": { + "$ref": "./examples/ConnectorDryrunDelete.json" + } } } } }, "definitions": { - "TargetServiceType": { - "description": "The target service type.", + "AccessKeyInfoBase": { + "type": "object", + "description": "The access key directly from target resource properties, which target service is Azure Resource, such as Microsoft.Storage", + "properties": { + "permissions": { + "type": "array", + "description": "Permissions of the accessKey. `Read` and `Write` are for Azure Cosmos DB and Azure App Configuration, `Listen`, `Send` and `Manage` are for Azure Event Hub and Azure Service Bus.", + "items": { + "$ref": "#/definitions/AccessKeyPermissions" + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/AuthInfoBase" + } + ], + "x-ms-discriminator-value": "accessKey" + }, + "AccessKeyPermissions": { "type": "string", "enum": [ - "AzureResource", - "ConfluentBootstrapServer", - "ConfluentSchemaRegistry", - "SelfHostedServer", - "FabricPlatform" + "Read", + "Write", + "Listen", + "Send", + "Manage" ], "x-ms-enum": { - "name": "targetServiceType", - "modelAsString": true + "name": "AccessKeyPermissions", + "modelAsString": true, + "values": [ + { + "name": "Read", + "value": "Read" + }, + { + "name": "Write", + "value": "Write" + }, + { + "name": "Listen", + "value": "Listen" + }, + { + "name": "Send", + "value": "Send" + }, + { + "name": "Manage", + "value": "Manage" + } + ] } }, - "TargetServiceBase": { - "description": "The target service properties", - "discriminator": "type", - "type": "object", - "properties": { - "type": { - "description": "The target service type.", - "$ref": "#/definitions/TargetServiceType" - } - }, - "required": [ - "type" - ] + "ActionType": { + "type": "string", + "enum": [ + "enable", + "optOut" + ], + "x-ms-enum": { + "name": "ActionType", + "modelAsString": true, + "values": [ + { + "name": "enable", + "value": "enable", + "description": "Actions are for internal-only APIs." + }, + { + "name": "optOut", + "value": "optOut" + } + ] + } }, - "AzureResourceType": { - "description": "The azure resource type.", + "AllowType": { "type": "string", + "description": "Whether to allow firewall rules.", "enum": [ - "KeyVault", - "AppConfig" + "true", + "false" ], "x-ms-enum": { - "name": "azureResourceType", - "modelAsString": true + "name": "AllowType", + "modelAsString": true, + "values": [ + { + "name": "true", + "value": "true" + }, + { + "name": "false", + "value": "false" + } + ] } }, - "AzureResourcePropertiesBase": { - "description": "The azure resource properties", - "discriminator": "type", + "AuthInfoBase": { "type": "object", + "description": "The authentication info", "properties": { - "type": { - "description": "The azure resource type.", - "$ref": "#/definitions/AzureResourceType" + "authType": { + "$ref": "#/definitions/AuthType", + "description": "The authentication type." + }, + "authMode": { + "$ref": "#/definitions/AuthMode", + "description": "Optional. Indicates how to configure authentication. If optInAllAuth, service linker configures authentication such as enabling identity on source resource and granting RBAC roles. If optOutAllAuth, opt out authentication setup. Default is optInAllAuth." } }, + "discriminator": "authType", "required": [ - "type" + "authType" ] }, - "AzureResource": { - "x-ms-discriminator-value": "AzureResource", - "type": "object", - "description": "The azure resource info when target service type is AzureResource", - "allOf": [ - { - "$ref": "#/definitions/TargetServiceBase" - } + "AuthMode": { + "type": "string", + "description": "Indicates how to apply the authentication configuration operations.", + "enum": [ + "optInAllAuth", + "optOutAllAuth" ], - "properties": { - "id": { - "description": "The Id of azure resource.", - "type": "string" - }, - "resourceProperties": { - "x-nullable": true, - "description": "The azure resource connection related properties.", - "$ref": "#/definitions/AzureResourcePropertiesBase" - } + "x-ms-enum": { + "name": "AuthMode", + "modelAsString": true, + "values": [ + { + "name": "optInAllAuth", + "value": "optInAllAuth", + "description": "Default authentication configuration according to the authentication type." + }, + { + "name": "optOutAllAuth", + "value": "optOutAllAuth", + "description": "Skip all authentication configuration such as enabling managed identity and granting RBAC roles" + } + ] } }, - "AzureKeyVaultProperties": { - "x-ms-discriminator-value": "KeyVault", - "type": "object", - "description": "The resource properties when type is Azure Key Vault", - "allOf": [ - { - "$ref": "#/definitions/AzureResourcePropertiesBase" - } + "AuthType": { + "type": "string", + "description": "The authentication type.", + "enum": [ + "systemAssignedIdentity", + "userAssignedIdentity", + "servicePrincipalSecret", + "servicePrincipalCertificate", + "secret", + "accessKey", + "userAccount", + "easyAuthMicrosoftEntraID" ], - "properties": { - "connectAsKubernetesCsiDriver": { - "x-nullable": true, - "description": "True if connect via Kubernetes CSI Driver.", - "type": "boolean" - } + "x-ms-enum": { + "name": "AuthType", + "modelAsString": true, + "values": [ + { + "name": "systemAssignedIdentity", + "value": "systemAssignedIdentity" + }, + { + "name": "userAssignedIdentity", + "value": "userAssignedIdentity" + }, + { + "name": "servicePrincipalSecret", + "value": "servicePrincipalSecret" + }, + { + "name": "servicePrincipalCertificate", + "value": "servicePrincipalCertificate" + }, + { + "name": "secret", + "value": "secret" + }, + { + "name": "accessKey", + "value": "accessKey" + }, + { + "name": "userAccount", + "value": "userAccount" + }, + { + "name": "easyAuthMicrosoftEntraID", + "value": "easyAuthMicrosoftEntraID" + } + ] } }, "AzureAppConfigProperties": { - "x-ms-discriminator-value": "AppConfig", "type": "object", "description": "The resource properties when type is Azure App Configuration", - "allOf": [ - { - "$ref": "#/definitions/AzureResourcePropertiesBase" - } - ], "properties": { "connectWithKubernetesExtension": { - "x-nullable": true, + "type": "boolean", "description": "True if connection enables app configuration kubernetes extension.", - "type": "boolean" + "x-nullable": true } - } - }, - "ConfluentBootstrapServer": { - "x-ms-discriminator-value": "ConfluentBootstrapServer", - "type": "object", - "description": "The service properties when target service type is ConfluentBootstrapServer", + }, "allOf": [ { - "$ref": "#/definitions/TargetServiceBase" + "$ref": "#/definitions/AzureResourcePropertiesBase" } ], - "properties": { - "endpoint": { - "description": "The endpoint of service.", - "type": "string" - } - } + "x-ms-discriminator-value": "AppConfig" }, - "FabricPlatform": { - "x-ms-discriminator-value": "FabricPlatform", + "AzureKeyVaultProperties": { "type": "object", - "description": "The service properties when target service type is FabricPlatform", - "allOf": [ - { - "$ref": "#/definitions/TargetServiceBase" - } - ], + "description": "The resource properties when type is Azure Key Vault", "properties": { - "endpoint": { - "description": "The endpoint of service.", - "type": "string" + "connectAsKubernetesCsiDriver": { + "type": "boolean", + "description": "True if connect via Kubernetes CSI Driver.", + "x-nullable": true } - } - }, - "SelfHostedServer": { - "x-ms-discriminator-value": "SelfHostedServer", - "type": "object", - "description": "The service properties when target service type is SelfHostedServer", + }, "allOf": [ { - "$ref": "#/definitions/TargetServiceBase" + "$ref": "#/definitions/AzureResourcePropertiesBase" } ], - "properties": { - "endpoint": { - "description": "The endpoint of service.", - "type": "string" - } - } + "x-ms-discriminator-value": "KeyVault" }, - "ConfluentSchemaRegistry": { - "x-ms-discriminator-value": "ConfluentSchemaRegistry", + "AzureResource": { "type": "object", - "description": "The service properties when target service type is ConfluentSchemaRegistry", + "description": "The azure resource info when target service type is AzureResource", + "properties": { + "id": { + "type": "string", + "description": "The Id of azure resource." + }, + "resourceProperties": { + "$ref": "#/definitions/AzureResourcePropertiesBase", + "description": "The azure resource connection related properties.", + "x-nullable": true + } + }, "allOf": [ { "$ref": "#/definitions/TargetServiceBase" } ], + "x-ms-discriminator-value": "AzureResource" + }, + "AzureResourcePropertiesBase": { + "type": "object", + "description": "The azure resource properties", "properties": { - "endpoint": { - "description": "The endpoint of service.", - "type": "string" + "type": { + "$ref": "#/definitions/AzureResourceType", + "description": "The azure resource type." } - } + }, + "discriminator": "type", + "required": [ + "type" + ] }, - "DeleteOrUpdateBehavior": { - "description": "The cleanup behavior to indicate whether clean up operation when resource is deleted or updated", + "AzureResourceType": { "type": "string", + "description": "The azure resource type.", "enum": [ - "Default", - "ForcedCleanup" + "KeyVault", + "AppConfig" ], "x-ms-enum": { - "name": "DeleteOrUpdateBehavior", - "modelAsString": true + "name": "AzureResourceType", + "modelAsString": true, + "values": [ + { + "name": "KeyVault", + "value": "KeyVault" + }, + { + "name": "AppConfig", + "value": "AppConfig" + } + ] } }, + "BasicErrorDryrunPrerequisiteResult": { + "type": "object", + "description": "The represent of basic error", + "properties": { + "code": { + "type": "string", + "description": "The error code." + }, + "message": { + "type": "string", + "description": "The error message." + } + }, + "allOf": [ + { + "$ref": "#/definitions/DryrunPrerequisiteResult" + } + ], + "x-ms-discriminator-value": "basicError" + }, "ClientType": { - "description": "The application client type", "type": "string", + "description": "The application client type", "enum": [ "none", "dotnet", @@ -1605,1333 +1991,1528 @@ "dapr" ], "x-ms-enum": { - "name": "clientType", - "modelAsString": true - } - }, - "AuthType": { - "description": "The authentication type.", - "type": "string", - "enum": [ - "systemAssignedIdentity", - "userAssignedIdentity", - "servicePrincipalSecret", - "servicePrincipalCertificate", - "secret", - "accessKey", - "userAccount", - "easyAuthMicrosoftEntraID" - ], - "x-ms-enum": { - "name": "AuthType", - "modelAsString": true - } - }, - "SecretType": { - "description": "The secret type.", - "type": "string", - "enum": [ - "rawValue", - "keyVaultSecretUri", - "keyVaultSecretReference" - ], - "x-ms-enum": { - "name": "SecretType", - "modelAsString": true - } - }, - "SecretSourceType": { - "description": "The type of secret source.", - "type": "string", - "enum": [ - "rawValue", - "keyVaultSecret" - ], - "x-ms-enum": { - "name": "SecretSourceType", - "modelAsString": true + "name": "ClientType", + "modelAsString": true, + "values": [ + { + "name": "none", + "value": "none" + }, + { + "name": "dotnet", + "value": "dotnet" + }, + { + "name": "java", + "value": "java" + }, + { + "name": "python", + "value": "python" + }, + { + "name": "go", + "value": "go" + }, + { + "name": "php", + "value": "php" + }, + { + "name": "ruby", + "value": "ruby" + }, + { + "name": "django", + "value": "django" + }, + { + "name": "nodejs", + "value": "nodejs" + }, + { + "name": "springBoot", + "value": "springBoot" + }, + { + "name": "kafka-springBoot", + "value": "kafka-springBoot" + }, + { + "name": "jms-springBoot", + "value": "jms-springBoot" + }, + { + "name": "dapr", + "value": "dapr" + } + ] } }, - "SecretInfoBase": { - "description": "The secret info", - "discriminator": "secretType", + "ConfigurationInfo": { "type": "object", + "description": "The configuration information, used to generate configurations or save to applications", "properties": { - "secretType": { - "description": "The secret type.", - "$ref": "#/definitions/SecretType" - } - }, - "required": [ - "secretType" - ] - }, - "ValueSecretInfo": { - "x-ms-discriminator-value": "rawValue", - "type": "object", - "description": "The secret info when type is rawValue. It's for scenarios that user input the secret.", - "allOf": [ - { - "$ref": "#/definitions/SecretInfoBase" - } - ], - "properties": { - "value": { - "x-nullable": true, - "description": "The actual value of the secret.", - "type": "string", - "x-ms-secret": true + "deleteOrUpdateBehavior": { + "$ref": "#/definitions/DeleteOrUpdateBehavior", + "description": "Indicates whether to clean up previous operation when Linker is updating or deleting" + }, + "action": { + "$ref": "#/definitions/ActionType", + "description": "Optional, indicate whether to apply configurations on source application. If enable, generate configurations and applied to the source application. Default is enable. If optOut, no configuration change will be made on source." + }, + "customizedKeys": { + "type": "object", + "description": "Optional. A dictionary of default key name and customized key name mapping. If not specified, default key name will be used for generate configurations", + "additionalProperties": { + "type": "string" + } + }, + "daprProperties": { + "$ref": "#/definitions/DaprProperties", + "description": "Indicates some additional properties for dapr client type" + }, + "additionalConfigurations": { + "type": "object", + "description": "A dictionary of additional configurations to be added. Service will auto generate a set of basic configurations and this property is to full fill more customized configurations", + "additionalProperties": { + "type": "string" + } + }, + "additionalConnectionStringProperties": { + "type": "object", + "description": "A dictionary of additional properties to be added in the end of connection string.", + "additionalProperties": { + "type": "string" + } + }, + "configurationStore": { + "$ref": "#/definitions/ConfigurationStore", + "description": "An option to store configuration into different place", + "x-nullable": true } } }, - "KeyVaultSecretReferenceSecretInfo": { - "x-ms-discriminator-value": "keyVaultSecretReference", + "ConfigurationName": { "type": "object", - "description": "The secret info when type is keyVaultSecretReference. It's for scenario that user provides a secret stored in user's keyvault and source is Azure Kubernetes. The key Vault's resource id is linked to secretStore.keyVaultId.", - "allOf": [ - { - "$ref": "#/definitions/SecretInfoBase" - } - ], + "description": "The configuration names.", "properties": { - "name": { - "description": "Name of the Key Vault secret.", + "value": { "type": "string" }, - "version": { - "x-nullable": true, - "description": "Version of the Key Vault secret.", - "type": "string" + "description": { + "type": "string", + "description": "Description for the configuration name." + }, + "required": { + "type": "boolean", + "description": "Represent the configuration is required or not" } } }, - "KeyVaultSecretUriSecretInfo": { - "x-ms-discriminator-value": "keyVaultSecretUri", + "ConfigurationNameItem": { "type": "object", - "description": "The secret info when type is keyVaultSecretUri. It's for scenario that user provides a secret stored in user's keyvault and source is Web App, Spring Cloud or Container App.", - "allOf": [ - { - "$ref": "#/definitions/SecretInfoBase" - } - ], "properties": { - "value": { - "description": "URI to the keyvault secret", - "type": "string" + "properties": { + "$ref": "#/definitions/ConfigurationNames", + "description": "The result detail.", + "x-nullable": true, + "x-ms-client-flatten": true } } }, - "AuthInfoBase": { - "description": "The authentication info", - "discriminator": "authType", + "ConfigurationNameResult": { "type": "object", + "description": "Configuration Name list which will be set based on different target resource, client type, auth type.", "properties": { - "authType": { - "description": "The authentication type.", - "$ref": "#/definitions/AuthType" + "value": { + "type": "array", + "description": "The ConfigurationNameItem items on this page", + "items": { + "$ref": "#/definitions/ConfigurationNameItem" + } }, - "authMode": { - "description": "Optional. Indicates how to configure authentication. If optInAllAuth, service linker configures authentication such as enabling identity on source resource and granting RBAC roles. If optOutAllAuth, opt out authentication setup. Default is optInAllAuth.", - "$ref": "#/definitions/AuthMode" + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" } }, "required": [ - "authType" + "value" ] }, - "AccessKeyInfoBase": { - "description": "The access key directly from target resource properties, which target service is Azure Resource, such as Microsoft.Storage", - "x-ms-discriminator-value": "accessKey", + "ConfigurationNames": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AuthInfoBase" - } - ], + "description": "The configuration names which will be set based on specific target resource, client type, auth type.", "properties": { - "permissions": { - "description": "Permissions of the accessKey. `Read` and `Write` are for Azure Cosmos DB and Azure App Configuration, `Listen`, `Send` and `Manage` are for Azure Event Hub and Azure Service Bus.", + "targetService": { + "type": "string", + "description": "The target service provider name and resource name." + }, + "clientType": { + "$ref": "#/definitions/ClientType", + "description": "The client type for configuration names." + }, + "authType": { + "$ref": "#/definitions/AuthType", + "description": "The auth type." + }, + "secretType": { + "$ref": "#/definitions/SecretSourceType", + "description": "Indicates where the secrets in configuration from. Used when secrets are from Keyvault." + }, + "daprProperties": { + "$ref": "#/definitions/DaprProperties", + "description": "Deprecated, please use #/definitions/DaprConfigurationList instead" + }, + "names": { "type": "array", + "description": "The configuration names to be set in compute service environment.", "items": { - "type": "string", - "enum": [ - "Read", - "Write", - "Listen", - "Send", - "Manage" - ], - "x-ms-enum": { - "name": "accessKeyPermissions", - "modelAsString": true - } + "$ref": "#/definitions/ConfigurationName" } } } }, - "DatabaseAadAuthInfo": { - "description": "The extra auth info required by Database AAD authentication.", + "ConfigurationResult": { "type": "object", + "description": "Configurations for source resource, include appSettings, connectionString and serviceBindings", "properties": { - "userName": { - "x-nullable": true, - "description": "Username created in the database which is mapped to a user in AAD.", - "type": "string" + "configurations": { + "type": "array", + "description": "The configuration properties for source resource.", + "items": { + "$ref": "#/definitions/SourceConfiguration" + }, + "x-ms-identifiers": [ + "name" + ] } } }, - "SecretAuthInfo": { - "x-ms-discriminator-value": "secret", + "ConfigurationStore": { "type": "object", - "description": "The authentication info when authType is secret", - "allOf": [ - { - "$ref": "#/definitions/AuthInfoBase" - } - ], + "description": "An option to store configuration into different place", "properties": { - "name": { - "x-nullable": true, - "description": "Username or account name for secret auth.", - "type": "string" - }, - "secretInfo": { - "x-nullable": true, - "description": "Password or key vault secret for secret auth.", - "$ref": "#/definitions/SecretInfoBase" + "appConfigurationId": { + "type": "string", + "description": "The app configuration id to store configuration", + "x-nullable": true } } }, - "UserAssignedIdentityAuthInfo": { - "x-ms-discriminator-value": "userAssignedIdentity", + "ConfluentBootstrapServer": { "type": "object", - "description": "The authentication info when authType is userAssignedIdentity", - "allOf": [ - { - "$ref": "#/definitions/AuthInfoBase" - }, - { - "$ref": "#/definitions/DatabaseAadAuthInfo" - } - ], + "description": "The service properties when target service type is ConfluentBootstrapServer", "properties": { - "clientId": { - "description": "Client Id for userAssignedIdentity.", - "type": "string" - }, - "subscriptionId": { - "description": "Subscription id for userAssignedIdentity.", - "type": "string" - }, - "deleteOrUpdateBehavior": { - "description": "Indicates whether to clean up previous operation when Linker is updating or deleting", - "$ref": "#/definitions/DeleteOrUpdateBehavior" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional, this value specifies the Azure role to be assigned" + "endpoint": { + "type": "string", + "description": "The endpoint of service." } - } - }, - "SystemAssignedIdentityAuthInfo": { - "x-ms-discriminator-value": "systemAssignedIdentity", - "type": "object", - "description": "The authentication info when authType is systemAssignedIdentity", + }, "allOf": [ { - "$ref": "#/definitions/AuthInfoBase" - }, - { - "$ref": "#/definitions/DatabaseAadAuthInfo" + "$ref": "#/definitions/TargetServiceBase" } ], - "properties": { - "deleteOrUpdateBehavior": { - "description": "Indicates whether to clean up previous operation when Linker is updating or deleting", - "$ref": "#/definitions/DeleteOrUpdateBehavior" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional, this value specifies the Azure role to be assigned" - } - } + "x-ms-discriminator-value": "ConfluentBootstrapServer" }, - "ServicePrincipalSecretAuthInfo": { - "x-ms-discriminator-value": "servicePrincipalSecret", + "ConfluentSchemaRegistry": { "type": "object", - "description": "The authentication info when authType is servicePrincipal secret", + "description": "The service properties when target service type is ConfluentSchemaRegistry", + "properties": { + "endpoint": { + "type": "string", + "description": "The endpoint of service." + } + }, "allOf": [ { - "$ref": "#/definitions/AuthInfoBase" - }, - { - "$ref": "#/definitions/DatabaseAadAuthInfo" + "$ref": "#/definitions/TargetServiceBase" } ], + "x-ms-discriminator-value": "ConfluentSchemaRegistry" + }, + "CreateOrUpdateDryrunParameters": { + "type": "object", + "description": "The dryrun parameters for creation or update a linker", "properties": { - "clientId": { - "description": "ServicePrincipal application clientId for servicePrincipal auth.", - "type": "string" + "targetService": { + "$ref": "#/definitions/TargetServiceBase", + "description": "The target service properties" }, - "principalId": { - "description": "Principal Id for servicePrincipal auth.", - "type": "string" + "authInfo": { + "$ref": "#/definitions/AuthInfoBase", + "description": "The authentication type." }, - "secret": { - "description": "Secret for servicePrincipal auth.", + "clientType": { + "$ref": "#/definitions/ClientType", + "description": "The application client type" + }, + "provisioningState": { "type": "string", - "x-ms-secret": true + "description": "The provisioning state.", + "readOnly": true }, - "deleteOrUpdateBehavior": { - "description": "Indicates whether to clean up previous operation when Linker is updating or deleting", - "$ref": "#/definitions/DeleteOrUpdateBehavior" + "vNetSolution": { + "$ref": "#/definitions/VNetSolution", + "description": "The VNet solution.", + "x-nullable": true }, - "roles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional, this value specifies the Azure roles to be assigned. Automatically " + "secretStore": { + "$ref": "#/definitions/SecretStore", + "description": "An option to store secret value in secure place", + "x-nullable": true + }, + "scope": { + "type": "string", + "description": "connection scope in source service.", + "x-nullable": true + }, + "publicNetworkSolution": { + "$ref": "#/definitions/PublicNetworkSolution", + "description": "The network solution.", + "x-nullable": true + }, + "configurationInfo": { + "$ref": "#/definitions/ConfigurationInfo", + "description": "The connection information consumed by applications, including secrets, connection strings.", + "x-nullable": true } }, - "required": [ - "clientId", - "principalId", - "secret" - ] - }, - "ServicePrincipalCertificateAuthInfo": { - "x-ms-discriminator-value": "servicePrincipalCertificate", - "type": "object", - "description": "The authentication info when authType is servicePrincipal certificate", "allOf": [ { - "$ref": "#/definitions/AuthInfoBase" + "$ref": "#/definitions/DryrunParameters" } ], - "properties": { - "clientId": { - "description": "Application clientId for servicePrincipal auth.", - "type": "string" - }, - "principalId": { - "description": "Principal Id for servicePrincipal auth.", - "type": "string" - }, - "certificate": { - "description": "ServicePrincipal certificate for servicePrincipal auth.", - "type": "string", - "x-ms-secret": true - }, - "deleteOrUpdateBehavior": { - "description": "Indicates whether to clean up previous operation when Linker is updating or deleting", - "$ref": "#/definitions/DeleteOrUpdateBehavior" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional, this value specifies the Azure roles to be assigned. Automatically " - } - }, - "required": [ - "clientId", - "principalId", - "certificate" - ] + "x-ms-discriminator-value": "createOrUpdate" }, - "UserAccountAuthInfo": { - "x-ms-discriminator-value": "userAccount", - "type": "object", - "description": "The authentication info when authType is user account", - "allOf": [ - { - "$ref": "#/definitions/AuthInfoBase" - }, - { - "$ref": "#/definitions/DatabaseAadAuthInfo" - } + "DaprBindingComponentDirection": { + "type": "string", + "description": "The direction supported by the dapr binding component", + "enum": [ + "input", + "output" ], - "properties": { - "principalId": { - "description": "Principal Id for user account.", - "type": "string" - }, - "deleteOrUpdateBehavior": { - "description": "Indicates whether to clean up previous operation when Linker is updating or deleting", - "$ref": "#/definitions/DeleteOrUpdateBehavior" - }, - "roles": { - "type": "array", - "items": { - "type": "string" + "x-ms-enum": { + "name": "DaprBindingComponentDirection", + "modelAsString": true, + "values": [ + { + "name": "input", + "value": "input" }, - "description": "Optional, this value specifies the Azure roles to be assigned. Automatically " - } + { + "name": "output", + "value": "output" + } + ] } }, - "EasyAuthMicrosoftEntraIDAuthInfo": { - "x-ms-discriminator-value": "easyAuthMicrosoftEntraID", + "DaprConfigurationList": { "type": "object", - "description": "The authentication info when authType is EasyAuth Microsoft Entra ID", - "allOf": [ - { - "$ref": "#/definitions/AuthInfoBase" - } - ], + "description": "Dapr configuration list supported by Service Connector", "properties": { - "clientId": { - "description": "Application clientId for EasyAuth Microsoft Entra ID.", - "type": "string" + "value": { + "type": "array", + "description": "The DaprConfigurationResource items on this page", + "items": { + "$ref": "#/definitions/DaprConfigurationResource" + } }, - "secret": { - "description": "Application Secret for EasyAuth Microsoft Entra ID.", + "nextLink": { "type": "string", - "x-ms-secret": true - }, - "deleteOrUpdateBehavior": { - "description": "Indicates whether to clean up previous operation when Linker is updating or deleting", - "$ref": "#/definitions/DeleteOrUpdateBehavior" + "format": "uri", + "description": "The link to the next page of items" } - } + }, + "required": [ + "value" + ] }, - "LinkerResource": { + "DaprConfigurationProperties": { "type": "object", - "description": "Linker of source and target resource", - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource", - "description": "The resource model definition for an Azure Resource Manager proxy resource." - } - ], - "required": [ - "properties" - ], "properties": { - "properties": { - "description": "The properties of the Linker.", - "$ref": "#/definitions/LinkerProperties", - "x-ms-client-flatten": true + "targetType": { + "type": "string", + "description": "Supported target resource type, extract from resource id, uppercase" }, - "systemData": { - "x-nullable": true, - "readOnly": true, - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/systemData", - "description": "The system data." + "authType": { + "$ref": "#/definitions/AuthType", + "description": "The authentication type." + }, + "daprProperties": { + "$ref": "#/definitions/DaprProperties", + "description": "Indicates some additional properties for dapr client type" } } }, - "LinkerPatch": { - "description": "A Linker to be updated.", + "DaprConfigurationResource": { "type": "object", + "description": "Represent one resource of the dapr configuration list", "properties": { "properties": { - "description": "Linker properties", - "type": "object", - "x-ms-client-flatten": true, - "$ref": "#/definitions/LinkerProperties" + "$ref": "#/definitions/DaprConfigurationProperties", + "description": "The properties of the dapr configuration.", + "x-ms-client-flatten": true } } }, - "ResourceList": { - "description": "The list of Linker.", + "DaprMetadata": { "type": "object", + "description": "The dapr component metadata.", "properties": { - "nextLink": { - "x-nullable": true, - "description": "The Linker used to get the next page of Linker list.", - "type": "string" + "name": { + "type": "string", + "description": "Metadata property name." }, "value": { - "description": "The list of Linkers.", - "type": "array", - "items": { - "$ref": "#/definitions/LinkerResource" - } + "type": "string", + "description": "Metadata property value." + }, + "secretRef": { + "type": "string", + "description": "The secret name where dapr could get value" + }, + "description": { + "type": "string", + "description": "The description of the metadata, returned from configuration api" + }, + "required": { + "$ref": "#/definitions/DaprMetadataRequired", + "description": "The value indicating whether the metadata is required or not" } } }, - "LinkerProperties": { - "description": "The properties of the Linker.", + "DaprMetadataRequired": { + "type": "string", + "description": "The value indicating whether the metadata is required or not", + "enum": [ + "true", + "false" + ], + "x-ms-enum": { + "name": "DaprMetadataRequired", + "modelAsString": true, + "values": [ + { + "name": "true", + "value": "true" + }, + { + "name": "false", + "value": "false" + } + ] + } + }, + "DaprProperties": { "type": "object", + "description": "Indicates some additional properties for dapr client type", "properties": { - "targetService": { - "$ref": "#/definitions/TargetServiceBase", - "description": "The target service properties" - }, - "authInfo": { - "description": "The authentication type.", - "$ref": "#/definitions/AuthInfoBase" + "version": { + "type": "string", + "description": "The dapr component version", + "x-nullable": true }, - "clientType": { - "description": "The application client type", - "$ref": "#/definitions/ClientType" + "componentType": { + "type": "string", + "description": "The dapr component type", + "x-nullable": true }, - "provisioningState": { - "readOnly": true, + "secretStoreComponent": { "type": "string", - "description": "The provisioning state. " + "description": "The name of a secret store dapr to retrieve secret", + "x-nullable": true }, - "vNetSolution": { - "x-nullable": true, - "description": "The VNet solution.", - "$ref": "#/definitions/VNetSolution" + "metadata": { + "type": "array", + "description": "Additional dapr metadata", + "items": { + "$ref": "#/definitions/DaprMetadata" + }, + "x-ms-identifiers": [ + "name" + ] }, - "secretStore": { - "x-nullable": true, - "description": "An option to store secret value in secure place", - "$ref": "#/definitions/SecretStore" + "scopes": { + "type": "array", + "description": "The dapr component scopes", + "items": { + "type": "string" + } }, - "scope": { - "x-nullable": true, + "runtimeVersion": { "type": "string", - "description": "connection scope in source service." - }, - "publicNetworkSolution": { + "description": "The runtime version supported by the properties", "x-nullable": true, - "description": "The network solution.", - "$ref": "#/definitions/PublicNetworkSolution" + "readOnly": true }, - "configurationInfo": { + "bindingComponentDirection": { + "$ref": "#/definitions/DaprBindingComponentDirection", + "description": "The direction supported by the dapr binding component", "x-nullable": true, - "description": "The connection information consumed by applications, including secrets, connection strings.", - "$ref": "#/definitions/ConfigurationInfo" + "readOnly": true } } }, - "LinkerConfigurationType": { - "description": "Type of configuration to determine whether the configuration can be modified after creation. KeyvaultSecret means the configuration references a key vault secret, such as App Service/ACA key vault reference. Default means the configuration is real value, such as user name, raw secret, etc.", + "DeleteOrUpdateBehavior": { "type": "string", + "description": "The cleanup behavior to indicate whether clean up operation when resource is deleted or updated", "enum": [ "Default", - "KeyVaultSecret" + "ForcedCleanup" ], "x-ms-enum": { - "name": "LinkerConfigurationType", - "modelAsString": true + "name": "DeleteOrUpdateBehavior", + "modelAsString": true, + "values": [ + { + "name": "Default", + "value": "Default" + }, + { + "name": "ForcedCleanup", + "value": "ForcedCleanup" + } + ] } }, - "SourceConfiguration": { - "description": "A configuration item for source resource", + "DryrunActionName": { + "type": "string", + "description": "The name of action for you dryrun job.", + "enum": [ + "createOrUpdate" + ], + "x-ms-enum": { + "name": "DryrunActionName", + "modelAsString": true, + "values": [ + { + "name": "createOrUpdate", + "value": "createOrUpdate" + } + ] + } + }, + "DryrunList": { "type": "object", + "description": "The list of dryrun.", "properties": { - "name": { - "description": "The name of setting.", - "type": "string" - }, "value": { - "x-nullable": true, - "description": "The value of setting", - "type": "string" + "type": "array", + "description": "The DryrunResource items on this page", + "items": { + "$ref": "#/definitions/DryrunResource" + } }, - "configType": { - "description": "The type of setting", - "readOnly": true, - "$ref": "#/definitions/LinkerConfigurationType" + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items", + "x-nullable": true + } + } + }, + "DryrunOperationPreview": { + "type": "object", + "description": "The preview of the operations for creation", + "properties": { + "name": { + "type": "string", + "description": "The operation name" }, - "keyVaultReferenceIdentity": { - "x-nullable": true, - "description": "The identity for key vault reference, system or user-assigned managed identity ID", - "type": "string" + "operationType": { + "$ref": "#/definitions/DryrunPreviewOperationType", + "description": "The operation type" }, "description": { - "x-nullable": true, - "description": "Descriptive information for the configuration", - "type": "string" + "type": "string", + "description": "The description of the operation" + }, + "action": { + "type": "string", + "description": "The action defined by RBAC, refer https://docs.microsoft.com/azure/role-based-access-control/role-definitions#actions-format" + }, + "scope": { + "type": "string", + "description": "The scope of the operation, refer https://docs.microsoft.com/azure/role-based-access-control/scope-overview" } } }, - "ConfigurationNameItem": { + "DryrunParameters": { "type": "object", + "description": "The parameters of the dryrun", + "properties": { + "actionName": { + "$ref": "#/definitions/DryrunActionName", + "description": "The name of action for you dryrun job." + } + }, + "discriminator": "actionName", + "required": [ + "actionName" + ] + }, + "DryrunPatch": { + "type": "object", + "description": "a dryrun job to be updated.", "properties": { "properties": { - "x-nullable": true, - "description": "The result detail.", - "x-ms-client-flatten": true, - "$ref": "#/definitions/ConfigurationNames" + "$ref": "#/definitions/DryrunProperties", + "description": "The properties of the dryrun job.", + "x-ms-client-flatten": true } } }, - "ConfigurationNames": { + "DryrunPrerequisiteResult": { "type": "object", - "description": "The configuration names which will be set based on specific target resource, client type, auth type.", + "description": "A result of dryrun", "properties": { - "targetService": { - "type": "string", - "description": "The target service provider name and resource name." - }, - "clientType": { - "$ref": "#/definitions/ClientType", - "description": "The client type for configuration names." - }, - "authType": { - "$ref": "#/definitions/AuthType", - "description": "The auth type." - }, - "secretType": { - "$ref": "#/definitions/SecretSourceType", - "description": "Indicates where the secrets in configuration from. Used when secrets are from Keyvault." + "type": { + "$ref": "#/definitions/DryrunPrerequisiteResultType", + "description": "The type of dryrun result." + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, + "DryrunPrerequisiteResultType": { + "type": "string", + "description": "The type of dryrun result.", + "enum": [ + "basicError", + "permissionsMissing" + ], + "x-ms-enum": { + "name": "DryrunPrerequisiteResultType", + "modelAsString": true, + "values": [ + { + "name": "basicError", + "value": "basicError" + }, + { + "name": "permissionsMissing", + "value": "permissionsMissing" + } + ] + } + }, + "DryrunPreviewOperationType": { + "type": "string", + "description": "The operation type", + "enum": [ + "configConnection", + "configNetwork", + "configAuth" + ], + "x-ms-enum": { + "name": "DryrunPreviewOperationType", + "modelAsString": true, + "values": [ + { + "name": "configConnection", + "value": "configConnection" + }, + { + "name": "configNetwork", + "value": "configNetwork" + }, + { + "name": "configAuth", + "value": "configAuth" + } + ] + } + }, + "DryrunProperties": { + "type": "object", + "description": "The properties of the dryrun job", + "properties": { + "parameters": { + "$ref": "#/definitions/DryrunParameters", + "description": "The parameters of the dryrun" }, - "daprProperties": { - "description": "Deprecated, please use #/definitions/DaprConfigurationList instead", - "$ref": "#/definitions/DaprProperties" + "prerequisiteResults": { + "type": "array", + "description": "the result of the dryrun", + "items": { + "$ref": "#/definitions/DryrunPrerequisiteResult" + }, + "readOnly": true, + "x-ms-identifiers": [] }, - "names": { + "operationPreviews": { "type": "array", - "description": "The configuration names to be set in compute service environment.", + "description": "the preview of the operations for creation", "items": { - "$ref": "#/definitions/ConfigurationName" - } + "$ref": "#/definitions/DryrunOperationPreview" + }, + "readOnly": true, + "x-ms-identifiers": [] + }, + "provisioningState": { + "type": "string", + "description": "The provisioning state.", + "readOnly": true } } }, - "ConfigurationName": { + "DryrunResource": { "type": "object", - "description": "The configuration names.", + "description": "a dryrun job resource", "properties": { - "value": { - "type": "string" + "properties": { + "$ref": "#/definitions/DryrunProperties", + "description": "The properties of the dryrun job.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" + } + ] + }, + "EasyAuthMicrosoftEntraIDAuthInfo": { + "type": "object", + "description": "The authentication info when authType is EasyAuth Microsoft Entra ID", + "properties": { + "clientId": { + "type": "string", + "description": "Application clientId for EasyAuth Microsoft Entra ID." }, - "description": { + "secret": { "type": "string", - "description": "Description for the configuration name." + "format": "password", + "description": "Application Secret for EasyAuth Microsoft Entra ID.", + "x-ms-secret": true }, - "required": { - "type": "boolean", - "description": "Represent the configuration is required or not" + "deleteOrUpdateBehavior": { + "$ref": "#/definitions/DeleteOrUpdateBehavior", + "description": "Indicates whether to clean up previous operation when Linker is updating or deleting" } - } + }, + "allOf": [ + { + "$ref": "#/definitions/AuthInfoBase" + } + ], + "x-ms-discriminator-value": "easyAuthMicrosoftEntraID" }, - "ConfigurationNameResult": { - "description": "Configuration Name list which will be set based on different target resource, client type, auth type.", + "FabricPlatform": { "type": "object", + "description": "The service properties when target service type is FabricPlatform", "properties": { - "value": { - "description": "Expected configuration names for each target service.", + "endpoint": { + "type": "string", + "description": "The endpoint of service." + } + }, + "allOf": [ + { + "$ref": "#/definitions/TargetServiceBase" + } + ], + "x-ms-discriminator-value": "FabricPlatform" + }, + "FirewallRules": { + "type": "object", + "description": "Target service's firewall rules. to allow connections from source service.", + "properties": { + "ipRanges": { "type": "array", + "description": "This value specifies the set of IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IPs for a given database account.", "items": { - "$ref": "#/definitions/ConfigurationNameItem" - }, - "x-ms-identifiers": [] + "type": "string" + } }, - "nextLink": { - "description": "Link to next page of resources.", - "type": "string", - "readOnly": true + "azureServices": { + "$ref": "#/definitions/AllowType", + "description": "Allow Azure services to access the target service if true." + }, + "callerClientIP": { + "$ref": "#/definitions/AllowType", + "description": "Allow caller client IP to access the target service if true. the property is used when connecting local application to target service." } } }, - "ConfigurationResult": { - "description": "Configurations for source resource, include appSettings, connectionString and serviceBindings", + "KeyVaultSecretReferenceSecretInfo": { "type": "object", + "description": "The secret info when type is keyVaultSecretReference. It's for scenario that user provides a secret stored in user's keyvault and source is Azure Kubernetes. The key Vault's resource id is linked to secretStore.keyVaultId.", "properties": { - "configurations": { - "description": "The configuration properties for source resource.", - "type": "array", - "items": { - "$ref": "#/definitions/SourceConfiguration" - }, - "x-ms-identifiers": [ - "name" - ] + "name": { + "type": "string", + "description": "Name of the Key Vault secret." + }, + "version": { + "type": "string", + "description": "Version of the Key Vault secret.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SecretInfoBase" } + ], + "x-ms-discriminator-value": "keyVaultSecretReference" + }, + "KeyVaultSecretUriSecretInfo": { + "type": "object", + "description": "The secret info when type is keyVaultSecretUri. It's for scenario that user provides a secret stored in user's keyvault and source is Web App, Spring Cloud or Container App.", + "properties": { + "value": { + "type": "string", + "description": "URI to the keyvault secret" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SecretInfoBase" + } + ], + "x-ms-discriminator-value": "keyVaultSecretUri" + }, + "LinkerConfigurationType": { + "type": "string", + "description": "Type of configuration to determine whether the configuration can be modified after creation. KeyvaultSecret means the configuration references a key vault secret, such as App Service/ACA key vault reference. Default means the configuration is real value, such as user name, raw secret, etc.", + "enum": [ + "Default", + "KeyVaultSecret" + ], + "x-ms-enum": { + "name": "LinkerConfigurationType", + "modelAsString": true, + "values": [ + { + "name": "Default", + "value": "Default" + }, + { + "name": "KeyVaultSecret", + "value": "KeyVaultSecret" + } + ] } }, - "ValidateOperationResult": { - "description": "The validation operation result for a Linker.", + "LinkerPatch": { "type": "object", + "description": "A Linker to be updated.", "properties": { "properties": { - "x-nullable": true, - "description": "The validation result detail.", - "x-ms-client-flatten": true, - "$ref": "#/definitions/ValidateResult" - }, - "resourceId": { - "x-nullable": true, - "description": "Validated Linker id.", - "type": "string" - }, - "status": { - "x-nullable": true, - "description": "Validation operation status.", - "type": "string" + "$ref": "#/definitions/LinkerProperties", + "description": "Linker properties", + "x-ms-client-flatten": true } } }, - "ValidateResult": { - "description": "The validation result for a Linker.", + "LinkerProperties": { "type": "object", + "description": "The properties of the Linker.", "properties": { - "linkerName": { - "x-nullable": true, - "description": "The linker name.", - "type": "string" + "targetService": { + "$ref": "#/definitions/TargetServiceBase", + "description": "The target service properties" }, - "isConnectionAvailable": { - "x-nullable": true, - "description": "A boolean value indicating whether the connection is available or not", - "type": "boolean" + "authInfo": { + "$ref": "#/definitions/AuthInfoBase", + "description": "The authentication type." }, - "reportStartTimeUtc": { - "x-nullable": true, - "type": "string", - "format": "date-time", - "description": "The start time of the validation report." + "clientType": { + "$ref": "#/definitions/ClientType", + "description": "The application client type" }, - "reportEndTimeUtc": { - "x-nullable": true, + "provisioningState": { "type": "string", - "format": "date-time", - "description": "The end time of the validation report." + "description": "The provisioning state.", + "readOnly": true }, - "sourceId": { - "x-nullable": true, - "description": "The resource id of the Linker source application.", - "type": "string" + "vNetSolution": { + "$ref": "#/definitions/VNetSolution", + "description": "The VNet solution.", + "x-nullable": true }, - "targetId": { - "x-nullable": true, - "description": "The resource Id of target service.", - "type": "string" + "secretStore": { + "$ref": "#/definitions/SecretStore", + "description": "An option to store secret value in secure place", + "x-nullable": true }, - "authType": { - "x-nullable": true, - "description": "The authentication type.", - "$ref": "#/definitions/AuthType" + "scope": { + "type": "string", + "description": "connection scope in source service.", + "x-nullable": true }, - "validationDetail": { - "description": "The detail of validation result", - "type": "array", - "items": { - "$ref": "#/definitions/ValidationResultItem" - }, - "x-ms-identifiers": [ - "name" - ] + "publicNetworkSolution": { + "$ref": "#/definitions/PublicNetworkSolution", + "description": "The network solution.", + "x-nullable": true + }, + "configurationInfo": { + "$ref": "#/definitions/ConfigurationInfo", + "description": "The connection information consumed by applications, including secrets, connection strings.", + "x-nullable": true } } }, - "ValidationResultItem": { - "description": "The validation item for a Linker.", + "LinkerResource": { "type": "object", + "description": "Linker of source and target resource", "properties": { - "name": { - "description": "The validation item name.", - "type": "string" - }, - "description": { - "x-nullable": true, - "description": "The display name of validation item", - "type": "string" - }, - "result": { - "x-nullable": true, - "description": "The result of validation", - "type": "string", - "enum": [ - "success", - "failure", - "warning" - ], - "x-ms-enum": { - "name": "ValidationResultStatus", - "modelAsString": true - } - }, - "errorMessage": { - "x-nullable": true, - "description": "The error message of validation result", - "type": "string" - }, - "errorCode": { - "x-nullable": true, - "description": "The error code of validation result", - "type": "string" + "properties": { + "$ref": "#/definitions/LinkerProperties", + "description": "The properties of the Linker.", + "x-ms-client-flatten": true } - } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" + } + ] }, - "VNetSolution": { + "PermissionsMissingDryrunPrerequisiteResult": { "type": "object", - "description": "The VNet solution for linker", + "description": "The represent of missing permissions", "properties": { - "type": { - "x-nullable": true, - "description": "Type of VNet solution.", + "scope": { "type": "string", - "enum": [ - "serviceEndpoint", - "privateLink" - ], - "x-ms-enum": { - "name": "vNetSolutionType", - "modelAsString": true + "description": "The permission scope" + }, + "permissions": { + "type": "array", + "description": "The permission list", + "items": { + "type": "string" } }, - "deleteOrUpdateBehavior": { - "description": "Indicates whether to clean up previous operation when Linker is updating or deleting", - "$ref": "#/definitions/DeleteOrUpdateBehavior" + "recommendedRole": { + "type": "string", + "description": "The recommended role to resolve permissions missing" } - } + }, + "allOf": [ + { + "$ref": "#/definitions/DryrunPrerequisiteResult" + } + ], + "x-ms-discriminator-value": "permissionsMissing" }, "PublicNetworkSolution": { "type": "object", "description": "Indicates public network solution, include firewall rules", "properties": { "deleteOrUpdateBehavior": { - "description": "Indicates whether to clean up previous operation(such as firewall rules) when Linker is updating or deleting", - "$ref": "#/definitions/DeleteOrUpdateBehavior" + "$ref": "#/definitions/DeleteOrUpdateBehavior", + "description": "Indicates whether to clean up previous operation(such as firewall rules) when Linker is updating or deleting" }, "action": { - "description": "Optional. Indicates public network solution. If enable, enable public network access of target service with best try. Default is enable. If optOut, opt out public network access configuration.", - "$ref": "#/definitions/ActionType" + "$ref": "#/definitions/ActionType", + "description": "Optional. Indicates public network solution. If enable, enable public network access of target service with best try. Default is enable. If optOut, opt out public network access configuration." }, "firewallRules": { - "description": "Describe firewall rules of target service to make sure source application could connect to the target.", - "$ref": "#/definitions/FirewallRules" + "$ref": "#/definitions/FirewallRules", + "description": "Describe firewall rules of target service to make sure source application could connect to the target." } } }, - "FirewallRules": { + "ResourceList": { "type": "object", - "description": "Target service's firewall rules. to allow connections from source service.", + "description": "The list of Linker.", "properties": { - "ipRanges": { + "value": { "type": "array", + "description": "The LinkerResource items on this page", "items": { - "type": "string" - }, - "description": "This value specifies the set of IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IPs for a given database account." - }, - "azureServices": { - "description": "Allow Azure services to access the target service if true.", - "$ref": "#/definitions/AllowType" + "$ref": "#/definitions/LinkerResource" + } }, - "callerClientIP": { - "description": "Allow caller client IP to access the target service if true. the property is used when connecting local application to target service.", - "$ref": "#/definitions/AllowType" + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items", + "x-nullable": true } } }, - "ConfigurationInfo": { + "SecretAuthInfo": { "type": "object", - "description": "The configuration information, used to generate configurations or save to applications", + "description": "The authentication info when authType is secret", "properties": { - "deleteOrUpdateBehavior": { - "description": "Indicates whether to clean up previous operation when Linker is updating or deleting", - "$ref": "#/definitions/DeleteOrUpdateBehavior" - }, - "action": { - "description": "Optional, indicate whether to apply configurations on source application. If enable, generate configurations and applied to the source application. Default is enable. If optOut, no configuration change will be made on source.", - "$ref": "#/definitions/ActionType" - }, - "customizedKeys": { - "description": "Optional. A dictionary of default key name and customized key name mapping. If not specified, default key name will be used for generate configurations", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "daprProperties": { - "description": "Indicates some additional properties for dapr client type", - "$ref": "#/definitions/DaprProperties" + "name": { + "type": "string", + "description": "Username or account name for secret auth.", + "x-nullable": true }, - "additionalConfigurations": { - "description": "A dictionary of additional configurations to be added. Service will auto generate a set of basic configurations and this property is to full fill more customized configurations", - "type": "object", - "additionalProperties": { - "type": "string" + "secretInfo": { + "$ref": "#/definitions/SecretInfoBase", + "description": "Password or key vault secret for secret auth.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/AuthInfoBase" + } + ], + "x-ms-discriminator-value": "secret" + }, + "SecretInfoBase": { + "type": "object", + "description": "The secret info", + "properties": { + "secretType": { + "$ref": "#/definitions/SecretType", + "description": "The secret type." + } + }, + "discriminator": "secretType", + "required": [ + "secretType" + ] + }, + "SecretSourceType": { + "type": "string", + "description": "The type of secret source.", + "enum": [ + "rawValue", + "keyVaultSecret" + ], + "x-ms-enum": { + "name": "SecretSourceType", + "modelAsString": true, + "values": [ + { + "name": "rawValue", + "value": "rawValue" + }, + { + "name": "keyVaultSecret", + "value": "keyVaultSecret" } + ] + } + }, + "SecretStore": { + "type": "object", + "description": "An option to store secret value in secure place", + "properties": { + "keyVaultId": { + "type": "string", + "description": "The key vault id to store secret", + "x-nullable": true }, - "additionalConnectionStringProperties": { - "description": "A dictionary of additional properties to be added in the end of connection string.", - "type": "object", - "additionalProperties": { - "type": "string" + "keyVaultSecretName": { + "type": "string", + "description": "The key vault secret name to store secret, only valid when storing one secret", + "x-nullable": true + } + } + }, + "SecretType": { + "type": "string", + "description": "The secret type.", + "enum": [ + "rawValue", + "keyVaultSecretUri", + "keyVaultSecretReference" + ], + "x-ms-enum": { + "name": "SecretType", + "modelAsString": true, + "values": [ + { + "name": "rawValue", + "value": "rawValue" + }, + { + "name": "keyVaultSecretUri", + "value": "keyVaultSecretUri" + }, + { + "name": "keyVaultSecretReference", + "value": "keyVaultSecretReference" } - }, - "configurationStore": { - "x-nullable": true, - "description": "An option to store configuration into different place", - "$ref": "#/definitions/ConfigurationStore" - } + ] } }, - "ConfigurationStore": { + "SelfHostedServer": { "type": "object", - "description": "An option to store configuration into different place", + "description": "The service properties when target service type is SelfHostedServer", "properties": { - "appConfigurationId": { - "x-nullable": true, + "endpoint": { "type": "string", - "description": "The app configuration id to store configuration" + "description": "The endpoint of service." } - } + }, + "allOf": [ + { + "$ref": "#/definitions/TargetServiceBase" + } + ], + "x-ms-discriminator-value": "SelfHostedServer" }, - "DaprProperties": { + "ServicePrincipalCertificateAuthInfo": { "type": "object", - "description": "Indicates some additional properties for dapr client type", + "description": "The authentication info when authType is servicePrincipal certificate", "properties": { - "version": { - "x-nullable": true, + "clientId": { "type": "string", - "description": "The dapr component version" + "description": "Application clientId for servicePrincipal auth." }, - "componentType": { - "x-nullable": true, + "principalId": { "type": "string", - "description": "The dapr component type" + "description": "Principal Id for servicePrincipal auth." }, - "secretStoreComponent": { - "x-nullable": true, + "certificate": { "type": "string", - "description": "The name of a secret store dapr to retrieve secret" + "format": "password", + "description": "ServicePrincipal certificate for servicePrincipal auth.", + "x-ms-secret": true }, - "metadata": { - "description": "Additional dapr metadata", - "type": "array", - "items": { - "$ref": "#/definitions/DaprMetadata" - }, - "x-ms-identifiers": [ - "name" - ] + "deleteOrUpdateBehavior": { + "$ref": "#/definitions/DeleteOrUpdateBehavior", + "description": "Indicates whether to clean up previous operation when Linker is updating or deleting" }, - "scopes": { - "description": "The dapr component scopes", + "roles": { "type": "array", + "description": "Optional, this value specifies the Azure roles to be assigned. Automatically", "items": { "type": "string" } + } + }, + "required": [ + "clientId", + "principalId", + "certificate" + ], + "allOf": [ + { + "$ref": "#/definitions/AuthInfoBase" + } + ], + "x-ms-discriminator-value": "servicePrincipalCertificate" + }, + "ServicePrincipalSecretAuthInfo": { + "type": "object", + "description": "The authentication info when authType is servicePrincipal secret", + "properties": { + "userName": { + "type": "string", + "description": "Username created in the database which is mapped to a user in AAD.", + "x-nullable": true }, - "runtimeVersion": { - "x-nullable": true, + "clientId": { "type": "string", - "readOnly": true, - "description": "The runtime version supported by the properties" + "description": "ServicePrincipal application clientId for servicePrincipal auth." }, - "bindingComponentDirection": { - "x-nullable": true, + "principalId": { "type": "string", - "enum": [ - "input", - "output" - ], - "x-ms-enum": { - "name": "DaprBindingComponentDirection", - "modelAsString": true - }, - "readOnly": true, - "description": "The direction supported by the dapr binding component" + "description": "Principal Id for servicePrincipal auth." + }, + "secret": { + "type": "string", + "format": "password", + "description": "Secret for servicePrincipal auth.", + "x-ms-secret": true + }, + "deleteOrUpdateBehavior": { + "$ref": "#/definitions/DeleteOrUpdateBehavior", + "description": "Indicates whether to clean up previous operation when Linker is updating or deleting" + }, + "roles": { + "type": "array", + "description": "Optional, this value specifies the Azure roles to be assigned. Automatically", + "items": { + "type": "string" + } } - } + }, + "required": [ + "clientId", + "principalId", + "secret" + ], + "allOf": [ + { + "$ref": "#/definitions/AuthInfoBase" + } + ], + "x-ms-discriminator-value": "servicePrincipalSecret" }, - "DaprMetadata": { - "description": "The dapr component metadata.", + "SourceConfiguration": { "type": "object", + "description": "A configuration item for source resource", "properties": { "name": { - "description": "Metadata property name.", - "type": "string" + "type": "string", + "description": "The name of setting." }, "value": { - "description": "Metadata property value.", - "type": "string" + "type": "string", + "description": "The value of setting", + "x-nullable": true }, - "secretRef": { - "description": "The secret name where dapr could get value", - "type": "string" + "configType": { + "$ref": "#/definitions/LinkerConfigurationType", + "description": "The type of setting", + "readOnly": true }, - "description": { - "description": "The description of the metadata, returned from configuration api", - "type": "string" + "keyVaultReferenceIdentity": { + "type": "string", + "description": "The identity for key vault reference, system or user-assigned managed identity ID", + "x-nullable": true }, - "required": { - "description": "The value indicating whether the metadata is required or not", + "description": { "type": "string", - "enum": [ - "true", - "false" - ], - "x-ms-enum": { - "name": "DaprMetadataRequired", - "modelAsString": true - } + "description": "Descriptive information for the configuration", + "x-nullable": true } } }, - "SecretStore": { + "SystemAssignedIdentityAuthInfo": { "type": "object", - "description": "An option to store secret value in secure place", + "description": "The authentication info when authType is systemAssignedIdentity", "properties": { - "keyVaultId": { - "x-nullable": true, + "userName": { "type": "string", - "description": "The key vault id to store secret" + "description": "Username created in the database which is mapped to a user in AAD.", + "x-nullable": true }, - "keyVaultSecretName": { - "x-nullable": true, - "type": "string", - "description": "The key vault secret name to store secret, only valid when storing one secret" - } - } - }, - "DryrunList": { - "description": "The list of dryrun.", - "type": "object", - "properties": { - "nextLink": { - "x-nullable": true, - "description": "The link used to get the next page of dryrun list.", - "type": "string" + "deleteOrUpdateBehavior": { + "$ref": "#/definitions/DeleteOrUpdateBehavior", + "description": "Indicates whether to clean up previous operation when Linker is updating or deleting" }, - "value": { - "description": "The list of dryrun.", + "roles": { "type": "array", + "description": "Optional, this value specifies the Azure role to be assigned", "items": { - "$ref": "#/definitions/DryrunResource" + "type": "string" } } - } - }, - "DryrunResource": { - "type": "object", - "description": "a dryrun job resource", + }, "allOf": [ { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource", - "description": "The resource model definition for an Azure Resource Manager proxy resource." + "$ref": "#/definitions/AuthInfoBase" } ], - "properties": { - "properties": { - "description": "The properties of the dryrun job.", - "$ref": "#/definitions/DryrunProperties", - "x-ms-client-flatten": true - } - } + "x-ms-discriminator-value": "systemAssignedIdentity" }, - "DryrunPatch": { + "TargetServiceBase": { "type": "object", - "description": "a dryrun job to be updated.", + "description": "The target service properties", "properties": { - "properties": { - "description": "The properties of the dryrun job.", - "$ref": "#/definitions/DryrunProperties", - "x-ms-client-flatten": true + "type": { + "$ref": "#/definitions/TargetServiceType", + "description": "The target service type." } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, + "TargetServiceType": { + "type": "string", + "description": "The target service type.", + "enum": [ + "AzureResource", + "ConfluentBootstrapServer", + "ConfluentSchemaRegistry", + "SelfHostedServer", + "FabricPlatform" + ], + "x-ms-enum": { + "name": "TargetServiceType", + "modelAsString": true, + "values": [ + { + "name": "AzureResource", + "value": "AzureResource" + }, + { + "name": "ConfluentBootstrapServer", + "value": "ConfluentBootstrapServer" + }, + { + "name": "ConfluentSchemaRegistry", + "value": "ConfluentSchemaRegistry" + }, + { + "name": "SelfHostedServer", + "value": "SelfHostedServer" + }, + { + "name": "FabricPlatform", + "value": "FabricPlatform" + } + ] } }, - "DryrunProperties": { - "description": "The properties of the dryrun job", + "UserAccountAuthInfo": { "type": "object", + "description": "The authentication info when authType is user account", "properties": { - "parameters": { - "description": "The parameters of the dryrun", - "$ref": "#/definitions/DryrunParameters" + "userName": { + "type": "string", + "description": "Username created in the database which is mapped to a user in AAD.", + "x-nullable": true }, - "prerequisiteResults": { - "readOnly": true, - "description": "the result of the dryrun", - "type": "array", - "items": { - "$ref": "#/definitions/DryrunPrerequisiteResult" - }, - "x-ms-identifiers": [] + "principalId": { + "type": "string", + "description": "Principal Id for user account." }, - "operationPreviews": { - "readOnly": true, - "description": "the preview of the operations for creation", + "deleteOrUpdateBehavior": { + "$ref": "#/definitions/DeleteOrUpdateBehavior", + "description": "Indicates whether to clean up previous operation when Linker is updating or deleting" + }, + "roles": { "type": "array", + "description": "Optional, this value specifies the Azure roles to be assigned. Automatically", "items": { - "$ref": "#/definitions/DryrunOperationPreview" - }, - "x-ms-identifiers": [] - }, - "provisioningState": { - "readOnly": true, - "type": "string", - "description": "The provisioning state. " - } - } - }, - "DryrunActionName": { - "description": "The name of action for you dryrun job.", - "type": "string", - "enum": [ - "createOrUpdate" + "type": "string" + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/AuthInfoBase" + } ], - "x-ms-enum": { - "name": "DryrunActionName", - "modelAsString": true - } + "x-ms-discriminator-value": "userAccount" }, - "DryrunParameters": { - "description": "The parameters of the dryrun", - "discriminator": "actionName", + "UserAssignedIdentityAuthInfo": { "type": "object", + "description": "The authentication info when authType is userAssignedIdentity", "properties": { - "actionName": { - "$ref": "#/definitions/DryrunActionName" + "userName": { + "type": "string", + "description": "Username created in the database which is mapped to a user in AAD.", + "x-nullable": true + }, + "clientId": { + "type": "string", + "description": "Client Id for userAssignedIdentity." + }, + "subscriptionId": { + "type": "string", + "description": "Subscription id for userAssignedIdentity." + }, + "deleteOrUpdateBehavior": { + "$ref": "#/definitions/DeleteOrUpdateBehavior", + "description": "Indicates whether to clean up previous operation when Linker is updating or deleting" + }, + "roles": { + "type": "array", + "description": "Optional, this value specifies the Azure role to be assigned", + "items": { + "type": "string" + } } }, - "required": [ - "actionName" - ] - }, - "CreateOrUpdateDryrunParameters": { - "x-ms-discriminator-value": "createOrUpdate", - "type": "object", - "description": "The dryrun parameters for creation or update a linker", "allOf": [ { - "$ref": "#/definitions/DryrunParameters" + "$ref": "#/definitions/AuthInfoBase" + } + ], + "x-ms-discriminator-value": "userAssignedIdentity" + }, + "VNetSolution": { + "type": "object", + "description": "The VNet solution for linker", + "properties": { + "type": { + "$ref": "#/definitions/VNetSolutionType", + "description": "Type of VNet solution.", + "x-nullable": true }, - { - "$ref": "#/definitions/LinkerProperties" + "deleteOrUpdateBehavior": { + "$ref": "#/definitions/DeleteOrUpdateBehavior", + "description": "Indicates whether to clean up previous operation when Linker is updating or deleting" } - ] + } }, - "DryrunPrerequisiteResultType": { - "description": "The type of dryrun result.", + "VNetSolutionType": { "type": "string", + "description": "Type of VNet solution.", "enum": [ - "basicError", - "permissionsMissing" + "serviceEndpoint", + "privateLink" ], "x-ms-enum": { - "name": "DryrunPrerequisiteResultType", - "modelAsString": true + "name": "VNetSolutionType", + "modelAsString": true, + "values": [ + { + "name": "serviceEndpoint", + "value": "serviceEndpoint" + }, + { + "name": "privateLink", + "value": "privateLink" + } + ] } }, - "DryrunPrerequisiteResult": { - "description": "A result of dryrun", - "discriminator": "type", - "type": "object", - "properties": { - "type": { - "$ref": "#/definitions/DryrunPrerequisiteResultType" - } - }, - "required": [ - "type" - ] - }, - "BasicErrorDryrunPrerequisiteResult": { - "x-ms-discriminator-value": "basicError", - "description": "The represent of basic error", + "ValidateOperationResult": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/DryrunPrerequisiteResult" - } - ], + "description": "The validation operation result for a Linker.", "properties": { - "code": { + "properties": { + "$ref": "#/definitions/ValidateResult", + "description": "The validation result detail.", + "x-nullable": true, + "x-ms-client-flatten": true + }, + "resourceId": { "type": "string", - "description": "The error code." + "description": "Validated Linker id.", + "x-nullable": true }, - "message": { + "status": { "type": "string", - "description": "The error message." + "description": "Validation operation status.", + "x-nullable": true } } }, - "PermissionsMissingDryrunPrerequisiteResult": { - "x-ms-discriminator-value": "permissionsMissing", - "description": "The represent of missing permissions", + "ValidateResult": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/DryrunPrerequisiteResult" - } - ], + "description": "The validation result for a Linker.", "properties": { - "scope": { - "description": "The permission scope", - "type": "string" + "linkerName": { + "type": "string", + "description": "The linker name.", + "x-nullable": true }, - "permissions": { - "description": "The permission list", + "isConnectionAvailable": { + "type": "boolean", + "description": "A boolean value indicating whether the connection is available or not", + "x-nullable": true + }, + "reportStartTimeUtc": { + "type": "string", + "format": "date-time", + "description": "The start time of the validation report.", + "x-nullable": true + }, + "reportEndTimeUtc": { + "type": "string", + "format": "date-time", + "description": "The end time of the validation report.", + "x-nullable": true + }, + "sourceId": { + "type": "string", + "description": "The resource id of the Linker source application.", + "x-nullable": true + }, + "targetId": { + "type": "string", + "description": "The resource Id of target service.", + "x-nullable": true + }, + "authType": { + "$ref": "#/definitions/AuthType", + "description": "The authentication type.", + "x-nullable": true + }, + "validationDetail": { "type": "array", + "description": "The detail of validation result", "items": { - "type": "string" - } - }, - "recommendedRole": { - "description": "The recommended role to resolve permissions missing", - "type": "string" + "$ref": "#/definitions/ValidationResultItem" + }, + "x-ms-identifiers": [ + "name" + ] } } }, - "DryrunOperationPreview": { - "description": "The preview of the operations for creation", + "ValidationResultItem": { "type": "object", + "description": "The validation item for a Linker.", "properties": { "name": { - "description": "The operation name", - "type": "string" - }, - "operationType": { - "description": "The operation type", "type": "string", - "enum": [ - "configConnection", - "configNetwork", - "configAuth" - ], - "x-ms-enum": { - "name": "DryrunPreviewOperationType", - "modelAsString": true - } + "description": "The validation item name." }, "description": { - "description": "The description of the operation", - "type": "string" + "type": "string", + "description": "The display name of validation item", + "x-nullable": true }, - "action": { - "description": "The action defined by RBAC, refer https://docs.microsoft.com/azure/role-based-access-control/role-definitions#actions-format", - "type": "string" + "result": { + "$ref": "#/definitions/ValidationResultStatus", + "description": "The result of validation", + "x-nullable": true }, - "scope": { - "description": "The scope of the operation, refer https://docs.microsoft.com/azure/role-based-access-control/scope-overview", - "type": "string" + "errorMessage": { + "type": "string", + "description": "The error message of validation result", + "x-nullable": true + }, + "errorCode": { + "type": "string", + "description": "The error code of validation result", + "x-nullable": true } } }, - "ActionType": { - "description": "Indicates how to apply the connector operations, such as opt out network configuration, opt in configuration.", - "type": "string", - "enum": [ - "enable", - "optOut" - ], - "x-ms-enum": { - "name": "actionType", - "modelAsString": true - } - }, - "AuthMode": { - "description": "Indicates how to apply the authentication configuration operations.", + "ValidationResultStatus": { "type": "string", + "description": "The result of validation", "enum": [ - "optInAllAuth", - "optOutAllAuth" + "success", + "failure", + "warning" ], "x-ms-enum": { - "name": "authMode", + "name": "ValidationResultStatus", "modelAsString": true, "values": [ { - "value": "optInAllAuth", - "description": "Default authentication configuration according to the authentication type." + "name": "success", + "value": "success" }, { - "value": "optOutAllAuth", - "description": "Skip all authentication configuration such as enabling managed identity and granting RBAC roles" + "name": "failure", + "value": "failure" + }, + { + "name": "warning", + "value": "warning" } ] } }, - "AllowType": { - "description": "Whether to allow firewall rules.", - "type": "string", - "enum": [ - "true", - "false" - ], - "x-ms-enum": { - "name": "allowType", - "modelAsString": true - } - }, - "DaprConfigurationList": { - "description": "Dapr configuration list supported by Service Connector", + "ValueSecretInfo": { "type": "object", + "description": "The secret info when type is rawValue. It's for scenarios that user input the secret.", "properties": { "value": { - "description": "The list of dapr configurations", - "type": "array", - "items": { - "$ref": "#/definitions/DaprConfigurationResource" - }, - "x-ms-identifiers": [] - }, - "nextLink": { - "description": "Link to next page of resources.", "type": "string", - "readOnly": true - } - } - }, - "DaprConfigurationResource": { - "description": "Represent one resource of the dapr configuration list", - "type": "object", - "properties": { - "properties": { - "description": "The properties of the dapr configuration.", - "$ref": "#/definitions/DaprConfigurationProperties", - "x-ms-client-flatten": true + "format": "password", + "description": "The actual value of the secret.", + "x-nullable": true, + "x-ms-secret": true } - } - }, - "DaprConfigurationProperties": { - "type": "object", - "properties": { - "targetType": { - "type": "string", - "description": "Supported target resource type, extract from resource id, uppercase" - }, - "authType": { - "$ref": "#/definitions/AuthType" - }, - "daprProperties": { - "$ref": "#/definitions/DaprProperties" + }, + "allOf": [ + { + "$ref": "#/definitions/SecretInfoBase" } - } + ], + "x-ms-discriminator-value": "rawValue" } }, - "parameters": { - "LinkerNameParameter": { - "name": "linkerName", - "in": "path", - "required": true, - "type": "string", - "description": "The name Linker resource.", - "x-ms-parameter-location": "method" - }, - "ConnectorNameParameter": { - "name": "connectorName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of resource.", - "x-ms-parameter-location": "method" - }, - "ResourceUriParameter": { - "name": "resourceUri", - "in": "path", - "required": true, - "type": "string", - "description": "The fully qualified Azure Resource manager identifier of the resource to be connected.", - "x-ms-skip-url-encoding": true, - "x-ms-parameter-location": "method" - }, - "SubscriptionIdParameter": { - "name": "subscriptionId", - "in": "path", - "required": true, - "type": "string", - "description": "The ID of the target subscription.", - "minLength": 1, - "x-ms-parameter-location": "method" - } - } + "parameters": {} }