diff --git a/eng/mgmt/mgmtmetadata/datafactory_resource-manager.txt b/eng/mgmt/mgmtmetadata/datafactory_resource-manager.txt index 699a74f88b729..69a8f9d6e1206 100644 --- a/eng/mgmt/mgmtmetadata/datafactory_resource-manager.txt +++ b/eng/mgmt/mgmtmetadata/datafactory_resource-manager.txt @@ -4,11 +4,11 @@ Commencing code generation Generating CSharp code Executing AutoRest command cmd.exe /c autorest.cmd https://github.com/Azure/azure-rest-api-specs/blob/master/specification/datafactory/resource-manager/readme.md --csharp --version=v2 --reflect-api-versions --tag=package-2018-06 --csharp-sdks-folder=D:\Projects\azure-sdk-for-net\sdk -2021-02-26 09:43:36 UTC +2021-03-23 01:56:11 UTC Azure-rest-api-specs repository information GitHub fork: Azure Branch: master -Commit: a06d912bc912010bdc0aa5d1d3c4b28ee1d89905 +Commit: f954470d4e330fb6fa042149d09f554c966c984d AutoRest information Requested version: v2 Bootstrapper version: autorest@2.0.4413 diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/CHANGELOG.md b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/CHANGELOG.md index 74554a1232860..18bbc9ea65e5f 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/CHANGELOG.md +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog for the Azure Data Factory V2 .NET SDK +## Version 4.16.0 +### Feature Additions +- Added Amazon S3 Compatible and Oracle Cloud Storage connectors +- Updated AzureDataExplorer LinkedService servicePrincipalId, servicePrincipalKey, tenant properties from required to optional +- Added accountKind property to AzureBlobStorage LinkedService +- Added AAD auth to CosmosDb LinkedService +- Added authHeaders to HTTP/REST/OData LinkedService +- Added MultiFactor auth to SFTP LinkedService +- Added UAMI to Identity +- Added privateEndpointConnection apis to DataFactory + ## Version 4.15.0 ### Feature Additions - Added WebActivity support for Service Principal diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Customizations/AzureDataExplorerLinkedService.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Customizations/AzureDataExplorerLinkedService.cs new file mode 100644 index 0000000000000..f3a16470f60cd --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Customizations/AzureDataExplorerLinkedService.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + public partial class AzureDataExplorerLinkedService : LinkedService + { + /// + /// Initializes a new instance of the AzureDataExplorerLinkedService + /// class. + /// + /// The endpoint of Azure Data Explorer (the + /// engine's endpoint). URL will be in the format + /// https://<clusterName>.<regionName>.kusto.windows.net. + /// Type: string (or Expression with resultType string) + /// The ID of the service principal + /// used to authenticate against Azure Data Explorer. Type: string (or + /// Expression with resultType string). + /// The key of the service principal + /// used to authenticate against Kusto. + /// Database name for connection. Type: string + /// (or Expression with resultType string). + /// The name or ID of the tenant to which the + /// service principal belongs. Type: string (or Expression with + /// resultType string). + /// Unmatched properties from the + /// message are deserialized this collection + /// The integration runtime reference. + /// Linked service description. + /// Parameters for linked service. + /// List of tags that can be used for + /// describing the linked service. + public AzureDataExplorerLinkedService(object endpoint, object servicePrincipalId, SecretBase servicePrincipalKey, object database, object tenant, IDictionary additionalProperties = default(IDictionary), IntegrationRuntimeReference connectVia = default(IntegrationRuntimeReference), string description = default(string), IDictionary parameters = default(IDictionary), IList annotations = default(IList)) + : base(additionalProperties, connectVia, description, parameters, annotations) + { + Endpoint = endpoint; + ServicePrincipalId = servicePrincipalId; + ServicePrincipalKey = servicePrincipalKey; + Database = database; + Tenant = tenant; + CustomInit(); + } + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Customizations/FactoryIdentity.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Customizations/FactoryIdentity.cs new file mode 100644 index 0000000000000..ec63c57648378 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Customizations/FactoryIdentity.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + public partial class FactoryIdentity + { + /// + /// Initializes a new instance of the FactoryIdentity class. + /// + /// The principal id of the identity. + /// The client tenant id of the + /// identity. + /// List of user assigned + /// identities for the factory. + public FactoryIdentity(System.Guid? principalId = default(System.Guid?), System.Guid? tenantId = default(System.Guid?), IDictionary userAssignedIdentities = default(IDictionary)) + { + PrincipalId = principalId; + TenantId = tenantId; + UserAssignedIdentities = userAssignedIdentities; + CustomInit(); + } + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/DataFactoryManagementClient.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/DataFactoryManagementClient.cs index 46f1baaa95abb..e43dae9a69086 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/DataFactoryManagementClient.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/DataFactoryManagementClient.cs @@ -160,6 +160,21 @@ public partial class DataFactoryManagementClient : ServiceClient public virtual IManagedPrivateEndpointsOperations ManagedPrivateEndpoints { get; private set; } + /// + /// Gets the IPrivateEndPointConnectionsOperations. + /// + public virtual IPrivateEndPointConnectionsOperations PrivateEndPointConnections { get; private set; } + + /// + /// Gets the IPrivateEndpointConnectionOperations. + /// + public virtual IPrivateEndpointConnectionOperations PrivateEndpointConnection { get; private set; } + + /// + /// Gets the IPrivateLinkResourcesOperations. + /// + public virtual IPrivateLinkResourcesOperations PrivateLinkResources { get; private set; } + /// /// Initializes a new instance of the DataFactoryManagementClient class. /// @@ -418,6 +433,9 @@ private void Initialize() DataFlowDebugSession = new DataFlowDebugSessionOperations(this); ManagedVirtualNetworks = new ManagedVirtualNetworksOperations(this); ManagedPrivateEndpoints = new ManagedPrivateEndpointsOperations(this); + PrivateEndPointConnections = new PrivateEndPointConnectionsOperations(this); + PrivateEndpointConnection = new PrivateEndpointConnectionOperations(this); + PrivateLinkResources = new PrivateLinkResourcesOperations(this); BaseUri = new System.Uri("https://management.azure.com"); ApiVersion = "2018-06-01"; AcceptLanguage = "en-US"; diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/IDataFactoryManagementClient.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/IDataFactoryManagementClient.cs index 67c86fd83972f..70522539d77c2 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/IDataFactoryManagementClient.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/IDataFactoryManagementClient.cs @@ -155,5 +155,20 @@ public partial interface IDataFactoryManagementClient : System.IDisposable /// IManagedPrivateEndpointsOperations ManagedPrivateEndpoints { get; } + /// + /// Gets the IPrivateEndPointConnectionsOperations. + /// + IPrivateEndPointConnectionsOperations PrivateEndPointConnections { get; } + + /// + /// Gets the IPrivateEndpointConnectionOperations. + /// + IPrivateEndpointConnectionOperations PrivateEndpointConnection { get; } + + /// + /// Gets the IPrivateLinkResourcesOperations. + /// + IPrivateLinkResourcesOperations PrivateLinkResources { get; } + } } diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/IPrivateEndPointConnectionsOperations.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/IPrivateEndPointConnectionsOperations.cs new file mode 100644 index 0000000000000..519ea4335b9ca --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/IPrivateEndPointConnectionsOperations.cs @@ -0,0 +1,74 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory +{ + using Microsoft.Rest; + using Microsoft.Rest.Azure; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// PrivateEndPointConnectionsOperations operations. + /// + public partial interface IPrivateEndPointConnectionsOperations + { + /// + /// Lists Private endpoint connections + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> ListByFactoryWithHttpMessagesAsync(string resourceGroupName, string factoryName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Lists Private endpoint connections + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> ListByFactoryNextWithHttpMessagesAsync(string nextPageLink, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/IPrivateEndpointConnectionOperations.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/IPrivateEndpointConnectionOperations.cs new file mode 100644 index 0000000000000..7d86311a78b81 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/IPrivateEndpointConnectionOperations.cs @@ -0,0 +1,120 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory +{ + using Microsoft.Rest; + using Microsoft.Rest.Azure; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// PrivateEndpointConnectionOperations operations. + /// + public partial interface IPrivateEndpointConnectionOperations + { + /// + /// Approves or rejects a private endpoint connection + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// The private endpoint connection name. + /// + /// + /// + /// + /// ETag of the private endpoint connection entity. Should only be + /// specified for update, for which it should match existing entity or + /// can be * for unconditional update. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> CreateOrUpdateWithHttpMessagesAsync(string resourceGroupName, string factoryName, string privateEndpointConnectionName, PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper, string ifMatch = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Gets a private endpoint connection + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// The private endpoint connection name. + /// + /// + /// ETag of the private endpoint connection entity. Should only be + /// specified for get. If the ETag matches the existing entity tag, or + /// if * was provided, then no content will be returned. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetWithHttpMessagesAsync(string resourceGroupName, string factoryName, string privateEndpointConnectionName, string ifNoneMatch = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Deletes a private endpoint connection + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// The private endpoint connection name. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task DeleteWithHttpMessagesAsync(string resourceGroupName, string factoryName, string privateEndpointConnectionName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/IPrivateLinkResourcesOperations.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/IPrivateLinkResourcesOperations.cs new file mode 100644 index 0000000000000..c9b2ee046d212 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/IPrivateLinkResourcesOperations.cs @@ -0,0 +1,52 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory +{ + using Microsoft.Rest; + using Microsoft.Rest.Azure; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// PrivateLinkResourcesOperations operations. + /// + public partial interface IPrivateLinkResourcesOperations + { + /// + /// Gets the private link resources + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetWithHttpMessagesAsync(string resourceGroupName, string factoryName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AmazonS3CompatibleLinkedService.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AmazonS3CompatibleLinkedService.cs new file mode 100644 index 0000000000000..581fcd63e57f8 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AmazonS3CompatibleLinkedService.cs @@ -0,0 +1,132 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + using Microsoft.Rest; + using Microsoft.Rest.Serialization; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Linked service for Amazon S3 Compatible. + /// + [Newtonsoft.Json.JsonObject("AmazonS3Compatible")] + [Rest.Serialization.JsonTransformation] + public partial class AmazonS3CompatibleLinkedService : LinkedService + { + /// + /// Initializes a new instance of the AmazonS3CompatibleLinkedService + /// class. + /// + public AmazonS3CompatibleLinkedService() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the AmazonS3CompatibleLinkedService + /// class. + /// + /// Unmatched properties from the + /// message are deserialized this collection + /// The integration runtime reference. + /// Linked service description. + /// Parameters for linked service. + /// List of tags that can be used for + /// describing the linked service. + /// The access key identifier of the Amazon + /// S3 Compatible Identity and Access Management (IAM) user. Type: + /// string (or Expression with resultType string). + /// The secret access key of the Amazon + /// S3 Compatible Identity and Access Management (IAM) user. + /// This value specifies the endpoint to + /// access with the Amazon S3 Compatible Connector. This is an optional + /// property; change it only if you want to try a different service + /// endpoint or want to switch between https and http. Type: string (or + /// Expression with resultType string). + /// If true, use S3 path-style access + /// instead of virtual hosted-style access. Default value is false. + /// Type: boolean (or Expression with resultType boolean). + /// The encrypted credential used for + /// authentication. Credentials are encrypted using the integration + /// runtime credential manager. Type: string (or Expression with + /// resultType string). + public AmazonS3CompatibleLinkedService(IDictionary additionalProperties = default(IDictionary), IntegrationRuntimeReference connectVia = default(IntegrationRuntimeReference), string description = default(string), IDictionary parameters = default(IDictionary), IList annotations = default(IList), object accessKeyId = default(object), SecretBase secretAccessKey = default(SecretBase), object serviceUrl = default(object), object forcePathStyle = default(object), object encryptedCredential = default(object)) + : base(additionalProperties, connectVia, description, parameters, annotations) + { + AccessKeyId = accessKeyId; + SecretAccessKey = secretAccessKey; + ServiceUrl = serviceUrl; + ForcePathStyle = forcePathStyle; + EncryptedCredential = encryptedCredential; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the access key identifier of the Amazon S3 Compatible + /// Identity and Access Management (IAM) user. Type: string (or + /// Expression with resultType string). + /// + [JsonProperty(PropertyName = "typeProperties.accessKeyId")] + public object AccessKeyId { get; set; } + + /// + /// Gets or sets the secret access key of the Amazon S3 Compatible + /// Identity and Access Management (IAM) user. + /// + [JsonProperty(PropertyName = "typeProperties.secretAccessKey")] + public SecretBase SecretAccessKey { get; set; } + + /// + /// Gets or sets this value specifies the endpoint to access with the + /// Amazon S3 Compatible Connector. This is an optional property; + /// change it only if you want to try a different service endpoint or + /// want to switch between https and http. Type: string (or Expression + /// with resultType string). + /// + [JsonProperty(PropertyName = "typeProperties.serviceUrl")] + public object ServiceUrl { get; set; } + + /// + /// Gets or sets if true, use S3 path-style access instead of virtual + /// hosted-style access. Default value is false. Type: boolean (or + /// Expression with resultType boolean). + /// + [JsonProperty(PropertyName = "typeProperties.forcePathStyle")] + public object ForcePathStyle { get; set; } + + /// + /// Gets or sets the encrypted credential used for authentication. + /// Credentials are encrypted using the integration runtime credential + /// manager. Type: string (or Expression with resultType string). + /// + [JsonProperty(PropertyName = "typeProperties.encryptedCredential")] + public object EncryptedCredential { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public override void Validate() + { + base.Validate(); + } + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AmazonS3CompatibleLocation.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AmazonS3CompatibleLocation.cs new file mode 100644 index 0000000000000..ed27609cebe33 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AmazonS3CompatibleLocation.cs @@ -0,0 +1,73 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// The location of Amazon S3 Compatible dataset. + /// + public partial class AmazonS3CompatibleLocation : DatasetLocation + { + /// + /// Initializes a new instance of the AmazonS3CompatibleLocation class. + /// + public AmazonS3CompatibleLocation() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the AmazonS3CompatibleLocation class. + /// + /// Unmatched properties from the + /// message are deserialized this collection + /// Specify the folder path of dataset. Type: + /// string (or Expression with resultType string) + /// Specify the file name of dataset. Type: + /// string (or Expression with resultType string). + /// Specify the bucketName of Amazon S3 + /// Compatible. Type: string (or Expression with resultType + /// string) + /// Specify the version of Amazon S3 Compatible. + /// Type: string (or Expression with resultType string). + public AmazonS3CompatibleLocation(IDictionary additionalProperties = default(IDictionary), object folderPath = default(object), object fileName = default(object), object bucketName = default(object), object version = default(object)) + : base(additionalProperties, folderPath, fileName) + { + BucketName = bucketName; + Version = version; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets specify the bucketName of Amazon S3 Compatible. Type: + /// string (or Expression with resultType string) + /// + [JsonProperty(PropertyName = "bucketName")] + public object BucketName { get; set; } + + /// + /// Gets or sets specify the version of Amazon S3 Compatible. Type: + /// string (or Expression with resultType string). + /// + [JsonProperty(PropertyName = "version")] + public object Version { get; set; } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AmazonS3CompatibleReadSettings.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AmazonS3CompatibleReadSettings.cs new file mode 100644 index 0000000000000..0f01aba06443c --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AmazonS3CompatibleReadSettings.cs @@ -0,0 +1,165 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Amazon S3 Compatible read settings. + /// + public partial class AmazonS3CompatibleReadSettings : StoreReadSettings + { + /// + /// Initializes a new instance of the AmazonS3CompatibleReadSettings + /// class. + /// + public AmazonS3CompatibleReadSettings() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the AmazonS3CompatibleReadSettings + /// class. + /// + /// Unmatched properties from the + /// message are deserialized this collection + /// The maximum concurrent + /// connection count for the source data store. Type: integer (or + /// Expression with resultType integer). + /// If true, files under the folder path will + /// be read recursively. Default is true. Type: boolean (or Expression + /// with resultType boolean). + /// Amazon S3 Compatible + /// wildcardFolderPath. Type: string (or Expression with resultType + /// string). + /// Amazon S3 Compatible + /// wildcardFileName. Type: string (or Expression with resultType + /// string). + /// The prefix filter for the S3 Compatible object + /// name. Type: string (or Expression with resultType string). + /// Point to a text file that lists each + /// file (relative path to the path configured in the dataset) that you + /// want to copy. Type: string (or Expression with resultType + /// string). + /// Indicates whether to enable + /// partition discovery. + /// Specify the root path where + /// partition discovery starts from. Type: string (or Expression with + /// resultType string). + /// Indicates whether the + /// source files need to be deleted after copy completion. Default is + /// false. Type: boolean (or Expression with resultType + /// boolean). + /// The start of file's modified + /// datetime. Type: string (or Expression with resultType + /// string). + /// The end of file's modified + /// datetime. Type: string (or Expression with resultType + /// string). + public AmazonS3CompatibleReadSettings(IDictionary additionalProperties = default(IDictionary), object maxConcurrentConnections = default(object), object recursive = default(object), object wildcardFolderPath = default(object), object wildcardFileName = default(object), object prefix = default(object), object fileListPath = default(object), bool? enablePartitionDiscovery = default(bool?), object partitionRootPath = default(object), object deleteFilesAfterCompletion = default(object), object modifiedDatetimeStart = default(object), object modifiedDatetimeEnd = default(object)) + : base(additionalProperties, maxConcurrentConnections) + { + Recursive = recursive; + WildcardFolderPath = wildcardFolderPath; + WildcardFileName = wildcardFileName; + Prefix = prefix; + FileListPath = fileListPath; + EnablePartitionDiscovery = enablePartitionDiscovery; + PartitionRootPath = partitionRootPath; + DeleteFilesAfterCompletion = deleteFilesAfterCompletion; + ModifiedDatetimeStart = modifiedDatetimeStart; + ModifiedDatetimeEnd = modifiedDatetimeEnd; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets if true, files under the folder path will be read + /// recursively. Default is true. Type: boolean (or Expression with + /// resultType boolean). + /// + [JsonProperty(PropertyName = "recursive")] + public object Recursive { get; set; } + + /// + /// Gets or sets amazon S3 Compatible wildcardFolderPath. Type: string + /// (or Expression with resultType string). + /// + [JsonProperty(PropertyName = "wildcardFolderPath")] + public object WildcardFolderPath { get; set; } + + /// + /// Gets or sets amazon S3 Compatible wildcardFileName. Type: string + /// (or Expression with resultType string). + /// + [JsonProperty(PropertyName = "wildcardFileName")] + public object WildcardFileName { get; set; } + + /// + /// Gets or sets the prefix filter for the S3 Compatible object name. + /// Type: string (or Expression with resultType string). + /// + [JsonProperty(PropertyName = "prefix")] + public object Prefix { get; set; } + + /// + /// Gets or sets point to a text file that lists each file (relative + /// path to the path configured in the dataset) that you want to copy. + /// Type: string (or Expression with resultType string). + /// + [JsonProperty(PropertyName = "fileListPath")] + public object FileListPath { get; set; } + + /// + /// Gets or sets indicates whether to enable partition discovery. + /// + [JsonProperty(PropertyName = "enablePartitionDiscovery")] + public bool? EnablePartitionDiscovery { get; set; } + + /// + /// Gets or sets specify the root path where partition discovery starts + /// from. Type: string (or Expression with resultType string). + /// + [JsonProperty(PropertyName = "partitionRootPath")] + public object PartitionRootPath { get; set; } + + /// + /// Gets or sets indicates whether the source files need to be deleted + /// after copy completion. Default is false. Type: boolean (or + /// Expression with resultType boolean). + /// + [JsonProperty(PropertyName = "deleteFilesAfterCompletion")] + public object DeleteFilesAfterCompletion { get; set; } + + /// + /// Gets or sets the start of file's modified datetime. Type: string + /// (or Expression with resultType string). + /// + [JsonProperty(PropertyName = "modifiedDatetimeStart")] + public object ModifiedDatetimeStart { get; set; } + + /// + /// Gets or sets the end of file's modified datetime. Type: string (or + /// Expression with resultType string). + /// + [JsonProperty(PropertyName = "modifiedDatetimeEnd")] + public object ModifiedDatetimeEnd { get; set; } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AmazonS3ReadSettings.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AmazonS3ReadSettings.cs index c4867aa2caca9..afd78707609fa 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AmazonS3ReadSettings.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AmazonS3ReadSettings.cs @@ -16,7 +16,7 @@ namespace Microsoft.Azure.Management.DataFactory.Models using System.Linq; /// - /// Azure data lake store read settings. + /// Amazon S3 read settings. /// public partial class AmazonS3ReadSettings : StoreReadSettings { diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/ArmIdWrapper.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/ArmIdWrapper.cs new file mode 100644 index 0000000000000..39ee4e8ed8ed2 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/ArmIdWrapper.cs @@ -0,0 +1,49 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// A wrapper for an ARM resource id + /// + public partial class ArmIdWrapper + { + /// + /// Initializes a new instance of the ArmIdWrapper class. + /// + public ArmIdWrapper() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ArmIdWrapper class. + /// + public ArmIdWrapper(string id = default(string)) + { + Id = id; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; private set; } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AzureBlobStorageLinkedService.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AzureBlobStorageLinkedService.cs index 3d4447bf2d464..ac5982e173693 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AzureBlobStorageLinkedService.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AzureBlobStorageLinkedService.cs @@ -71,11 +71,15 @@ public AzureBlobStorageLinkedService() /// AzureUsGovernment, AzureGermany. Default value is the data factory /// regions’ cloud type. Type: string (or Expression with resultType /// string). + /// Specify the kind of your storage account. + /// Allowed values are: Storage (general purpose v1), StorageV2 + /// (general purpose v2), BlobStorage, or BlockBlobStorage. Type: + /// string (or Expression with resultType string). /// The encrypted credential used for /// authentication. Credentials are encrypted using the integration /// runtime credential manager. Type: string (or Expression with /// resultType string). - public AzureBlobStorageLinkedService(IDictionary additionalProperties = default(IDictionary), IntegrationRuntimeReference connectVia = default(IntegrationRuntimeReference), string description = default(string), IDictionary parameters = default(IDictionary), IList annotations = default(IList), object connectionString = default(object), AzureKeyVaultSecretReference accountKey = default(AzureKeyVaultSecretReference), object sasUri = default(object), AzureKeyVaultSecretReference sasToken = default(AzureKeyVaultSecretReference), string serviceEndpoint = default(string), object servicePrincipalId = default(object), SecretBase servicePrincipalKey = default(SecretBase), object tenant = default(object), object azureCloudType = default(object), string encryptedCredential = default(string)) + public AzureBlobStorageLinkedService(IDictionary additionalProperties = default(IDictionary), IntegrationRuntimeReference connectVia = default(IntegrationRuntimeReference), string description = default(string), IDictionary parameters = default(IDictionary), IList annotations = default(IList), object connectionString = default(object), AzureKeyVaultSecretReference accountKey = default(AzureKeyVaultSecretReference), object sasUri = default(object), AzureKeyVaultSecretReference sasToken = default(AzureKeyVaultSecretReference), string serviceEndpoint = default(string), object servicePrincipalId = default(object), SecretBase servicePrincipalKey = default(SecretBase), object tenant = default(object), object azureCloudType = default(object), string accountKind = default(string), string encryptedCredential = default(string)) : base(additionalProperties, connectVia, description, parameters, annotations) { ConnectionString = connectionString; @@ -87,6 +91,7 @@ public AzureBlobStorageLinkedService() ServicePrincipalKey = servicePrincipalKey; Tenant = tenant; AzureCloudType = azureCloudType; + AccountKind = accountKind; EncryptedCredential = encryptedCredential; CustomInit(); } @@ -167,6 +172,15 @@ public AzureBlobStorageLinkedService() [JsonProperty(PropertyName = "typeProperties.azureCloudType")] public object AzureCloudType { get; set; } + /// + /// Gets or sets specify the kind of your storage account. Allowed + /// values are: Storage (general purpose v1), StorageV2 (general + /// purpose v2), BlobStorage, or BlockBlobStorage. Type: string (or + /// Expression with resultType string). + /// + [JsonProperty(PropertyName = "typeProperties.accountKind")] + public string AccountKind { get; set; } + /// /// Gets or sets the encrypted credential used for authentication. /// Credentials are encrypted using the integration runtime credential diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AzureDataExplorerLinkedService.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AzureDataExplorerLinkedService.cs index d07b575ff850b..bdfc0334dcca3 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AzureDataExplorerLinkedService.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/AzureDataExplorerLinkedService.cs @@ -41,16 +41,8 @@ public AzureDataExplorerLinkedService() /// engine's endpoint). URL will be in the format /// https://<clusterName>.<regionName>.kusto.windows.net. /// Type: string (or Expression with resultType string) - /// The ID of the service principal - /// used to authenticate against Azure Data Explorer. Type: string (or - /// Expression with resultType string). - /// The key of the service principal - /// used to authenticate against Kusto. /// Database name for connection. Type: string /// (or Expression with resultType string). - /// The name or ID of the tenant to which the - /// service principal belongs. Type: string (or Expression with - /// resultType string). /// Unmatched properties from the /// message are deserialized this collection /// The integration runtime reference. @@ -58,7 +50,15 @@ public AzureDataExplorerLinkedService() /// Parameters for linked service. /// List of tags that can be used for /// describing the linked service. - public AzureDataExplorerLinkedService(object endpoint, object servicePrincipalId, SecretBase servicePrincipalKey, object database, object tenant, IDictionary additionalProperties = default(IDictionary), IntegrationRuntimeReference connectVia = default(IntegrationRuntimeReference), string description = default(string), IDictionary parameters = default(IDictionary), IList annotations = default(IList)) + /// The ID of the service principal + /// used to authenticate against Azure Data Explorer. Type: string (or + /// Expression with resultType string). + /// The key of the service principal + /// used to authenticate against Kusto. + /// The name or ID of the tenant to which the + /// service principal belongs. Type: string (or Expression with + /// resultType string). + public AzureDataExplorerLinkedService(object endpoint, object database, IDictionary additionalProperties = default(IDictionary), IntegrationRuntimeReference connectVia = default(IntegrationRuntimeReference), string description = default(string), IDictionary parameters = default(IDictionary), IList annotations = default(IList), object servicePrincipalId = default(object), SecretBase servicePrincipalKey = default(SecretBase), object tenant = default(object)) : base(additionalProperties, connectVia, description, parameters, annotations) { Endpoint = endpoint; @@ -126,22 +126,10 @@ public override void Validate() { throw new ValidationException(ValidationRules.CannotBeNull, "Endpoint"); } - if (ServicePrincipalId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "ServicePrincipalId"); - } - if (ServicePrincipalKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "ServicePrincipalKey"); - } if (Database == null) { throw new ValidationException(ValidationRules.CannotBeNull, "Database"); } - if (Tenant == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "Tenant"); - } } } } diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/CosmosDbConnectionMode.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/CosmosDbConnectionMode.cs new file mode 100644 index 0000000000000..e0c61225bc585 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/CosmosDbConnectionMode.cs @@ -0,0 +1,22 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + + /// + /// Defines values for CosmosDbConnectionMode. + /// + public static class CosmosDbConnectionMode + { + public const string Gateway = "Gateway"; + public const string Direct = "Direct"; + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/CosmosDbLinkedService.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/CosmosDbLinkedService.cs index 076249b687556..0ae5ab29f54ca 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/CosmosDbLinkedService.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/CosmosDbLinkedService.cs @@ -52,17 +52,50 @@ public CosmosDbLinkedService() /// The account key of the Azure CosmosDB /// account. Type: SecureString or /// AzureKeyVaultSecretReference. + /// The client ID of the application + /// in Azure Active Directory used for Server-To-Server authentication. + /// Type: string (or Expression with resultType string). + /// The service principal + /// credential type to use in Server-To-Server authentication. + /// 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' for + /// certificate. Type: string (or Expression with resultType string). + /// Possible values include: 'ServicePrincipalKey', + /// 'ServicePrincipalCert' + /// The credential of the + /// service principal object in Azure Active Directory. If + /// servicePrincipalCredentialType is 'ServicePrincipalKey', + /// servicePrincipalCredential can be SecureString or + /// AzureKeyVaultSecretReference. If servicePrincipalCredentialType is + /// 'ServicePrincipalCert', servicePrincipalCredential can only be + /// AzureKeyVaultSecretReference. + /// The name or ID of the tenant to which the + /// service principal belongs. Type: string (or Expression with + /// resultType string). + /// Indicates the azure cloud type of the + /// service principle auth. Allowed values are AzurePublic, AzureChina, + /// AzureUsGovernment, AzureGermany. Default value is the data factory + /// regions’ cloud type. Type: string (or Expression with resultType + /// string). + /// The connection mode used to access + /// CosmosDB account. Type: string (or Expression with resultType + /// string). Possible values include: 'Gateway', 'Direct' /// The encrypted credential used for /// authentication. Credentials are encrypted using the integration /// runtime credential manager. Type: string (or Expression with /// resultType string). - public CosmosDbLinkedService(IDictionary additionalProperties = default(IDictionary), IntegrationRuntimeReference connectVia = default(IntegrationRuntimeReference), string description = default(string), IDictionary parameters = default(IDictionary), IList annotations = default(IList), object connectionString = default(object), object accountEndpoint = default(object), object database = default(object), SecretBase accountKey = default(SecretBase), object encryptedCredential = default(object)) + public CosmosDbLinkedService(IDictionary additionalProperties = default(IDictionary), IntegrationRuntimeReference connectVia = default(IntegrationRuntimeReference), string description = default(string), IDictionary parameters = default(IDictionary), IList annotations = default(IList), object connectionString = default(object), object accountEndpoint = default(object), object database = default(object), SecretBase accountKey = default(SecretBase), object servicePrincipalId = default(object), string servicePrincipalCredentialType = default(string), SecretBase servicePrincipalCredential = default(SecretBase), object tenant = default(object), object azureCloudType = default(object), string connectionMode = default(string), object encryptedCredential = default(object)) : base(additionalProperties, connectVia, description, parameters, annotations) { ConnectionString = connectionString; AccountEndpoint = accountEndpoint; Database = database; AccountKey = accountKey; + ServicePrincipalId = servicePrincipalId; + ServicePrincipalCredentialType = servicePrincipalCredentialType; + ServicePrincipalCredential = servicePrincipalCredential; + Tenant = tenant; + AzureCloudType = azureCloudType; + ConnectionMode = connectionMode; EncryptedCredential = encryptedCredential; CustomInit(); } @@ -100,6 +133,62 @@ public CosmosDbLinkedService() [JsonProperty(PropertyName = "typeProperties.accountKey")] public SecretBase AccountKey { get; set; } + /// + /// Gets or sets the client ID of the application in Azure Active + /// Directory used for Server-To-Server authentication. Type: string + /// (or Expression with resultType string). + /// + [JsonProperty(PropertyName = "typeProperties.servicePrincipalId")] + public object ServicePrincipalId { get; set; } + + /// + /// Gets or sets the service principal credential type to use in + /// Server-To-Server authentication. 'ServicePrincipalKey' for + /// key/secret, 'ServicePrincipalCert' for certificate. Type: string + /// (or Expression with resultType string). Possible values include: + /// 'ServicePrincipalKey', 'ServicePrincipalCert' + /// + [JsonProperty(PropertyName = "typeProperties.servicePrincipalCredentialType")] + public string ServicePrincipalCredentialType { get; set; } + + /// + /// Gets or sets the credential of the service principal object in + /// Azure Active Directory. If servicePrincipalCredentialType is + /// 'ServicePrincipalKey', servicePrincipalCredential can be + /// SecureString or AzureKeyVaultSecretReference. If + /// servicePrincipalCredentialType is 'ServicePrincipalCert', + /// servicePrincipalCredential can only be + /// AzureKeyVaultSecretReference. + /// + [JsonProperty(PropertyName = "typeProperties.servicePrincipalCredential")] + public SecretBase ServicePrincipalCredential { get; set; } + + /// + /// Gets or sets the name or ID of the tenant to which the service + /// principal belongs. Type: string (or Expression with resultType + /// string). + /// + [JsonProperty(PropertyName = "typeProperties.tenant")] + public object Tenant { get; set; } + + /// + /// Gets or sets indicates the azure cloud type of the service + /// principle auth. Allowed values are AzurePublic, AzureChina, + /// AzureUsGovernment, AzureGermany. Default value is the data factory + /// regions’ cloud type. Type: string (or Expression with resultType + /// string). + /// + [JsonProperty(PropertyName = "typeProperties.azureCloudType")] + public object AzureCloudType { get; set; } + + /// + /// Gets or sets the connection mode used to access CosmosDB account. + /// Type: string (or Expression with resultType string). Possible + /// values include: 'Gateway', 'Direct' + /// + [JsonProperty(PropertyName = "typeProperties.connectionMode")] + public string ConnectionMode { get; set; } + /// /// Gets or sets the encrypted credential used for authentication. /// Credentials are encrypted using the integration runtime credential diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/CosmosDbServicePrincipalCredentialType.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/CosmosDbServicePrincipalCredentialType.cs new file mode 100644 index 0000000000000..b88fa320ce353 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/CosmosDbServicePrincipalCredentialType.cs @@ -0,0 +1,22 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + + /// + /// Defines values for CosmosDbServicePrincipalCredentialType. + /// + public static class CosmosDbServicePrincipalCredentialType + { + public const string ServicePrincipalKey = "ServicePrincipalKey"; + public const string ServicePrincipalCert = "ServicePrincipalCert"; + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/Factory.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/Factory.cs index d85ff38d01f88..e96b57ac1009f 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/Factory.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/Factory.cs @@ -143,6 +143,10 @@ public Factory() /// public virtual void Validate() { + if (Identity != null) + { + Identity.Validate(); + } if (RepoConfiguration != null) { RepoConfiguration.Validate(); diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/FactoryIdentity.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/FactoryIdentity.cs index 40f4a1195d4e2..42580a9f25d66 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/FactoryIdentity.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/FactoryIdentity.cs @@ -10,6 +10,7 @@ namespace Microsoft.Azure.Management.DataFactory.Models { + using Microsoft.Rest; using Newtonsoft.Json; using System.Collections; using System.Collections.Generic; @@ -31,31 +32,35 @@ public FactoryIdentity() /// /// Initializes a new instance of the FactoryIdentity class. /// + /// The identity type. Possible values include: + /// 'SystemAssigned', 'UserAssigned', + /// 'SystemAssigned,UserAssigned' /// The principal id of the identity. /// The client tenant id of the /// identity. /// List of user assigned /// identities for the factory. - public FactoryIdentity(System.Guid? principalId = default(System.Guid?), System.Guid? tenantId = default(System.Guid?), IDictionary userAssignedIdentities = default(IDictionary)) + public FactoryIdentity(string type, System.Guid? principalId = default(System.Guid?), System.Guid? tenantId = default(System.Guid?), IDictionary userAssignedIdentities = default(IDictionary)) { + Type = type; PrincipalId = principalId; TenantId = tenantId; UserAssignedIdentities = userAssignedIdentities; CustomInit(); } - /// - /// Static constructor for FactoryIdentity class. - /// - static FactoryIdentity() - { - Type = "SystemAssigned"; - } /// /// An initialization method that performs custom operations like setting defaults /// partial void CustomInit(); + /// + /// Gets or sets the identity type. Possible values include: + /// 'SystemAssigned', 'UserAssigned', 'SystemAssigned,UserAssigned' + /// + [JsonProperty(PropertyName = "type")] + public string Type { get; set; } + /// /// Gets the principal id of the identity. /// @@ -75,10 +80,17 @@ static FactoryIdentity() public IDictionary UserAssignedIdentities { get; set; } /// - /// The identity type. + /// Validate the object. /// - [JsonProperty(PropertyName = "type")] - public static string Type { get; private set; } - + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Type == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "Type"); + } + } } } diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/FactoryIdentityType.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/FactoryIdentityType.cs new file mode 100644 index 0000000000000..242d410d00119 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/FactoryIdentityType.cs @@ -0,0 +1,23 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + + /// + /// Defines values for FactoryIdentityType. + /// + public static class FactoryIdentityType + { + public const string SystemAssigned = "SystemAssigned"; + public const string UserAssigned = "UserAssigned"; + public const string SystemAssignedUserAssigned = "SystemAssigned,UserAssigned"; + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/FactoryUpdateParameters.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/FactoryUpdateParameters.cs index c6c5204a7abdf..0f65c6a02eb6a 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/FactoryUpdateParameters.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/FactoryUpdateParameters.cs @@ -58,5 +58,18 @@ public FactoryUpdateParameters() [JsonProperty(PropertyName = "identity")] public FactoryIdentity Identity { get; set; } + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Identity != null) + { + Identity.Validate(); + } + } } } diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/HttpLinkedService.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/HttpLinkedService.cs index 59f8528d3d92b..5c4832f8b56df 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/HttpLinkedService.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/HttpLinkedService.cs @@ -53,6 +53,9 @@ public HttpLinkedService() /// string). /// Password for Basic, Digest, Windows, or /// ClientCertificate with EmbeddedCertData authentication. + /// The additional HTTP headers in the + /// request to RESTful API used for authorization. Type: object (or + /// Expression with resultType object). /// Base64 encoded certificate data for /// ClientCertificate authentication. For on-premises copy with /// ClientCertificate authentication, either CertThumbprint or @@ -70,13 +73,14 @@ public HttpLinkedService() /// If true, validate /// the HTTPS server SSL certificate. Default value is true. Type: /// boolean (or Expression with resultType boolean). - public HttpLinkedService(object url, IDictionary additionalProperties = default(IDictionary), IntegrationRuntimeReference connectVia = default(IntegrationRuntimeReference), string description = default(string), IDictionary parameters = default(IDictionary), IList annotations = default(IList), string authenticationType = default(string), object userName = default(object), SecretBase password = default(SecretBase), object embeddedCertData = default(object), object certThumbprint = default(object), object encryptedCredential = default(object), object enableServerCertificateValidation = default(object)) + public HttpLinkedService(object url, IDictionary additionalProperties = default(IDictionary), IntegrationRuntimeReference connectVia = default(IntegrationRuntimeReference), string description = default(string), IDictionary parameters = default(IDictionary), IList annotations = default(IList), string authenticationType = default(string), object userName = default(object), SecretBase password = default(SecretBase), object authHeaders = default(object), object embeddedCertData = default(object), object certThumbprint = default(object), object encryptedCredential = default(object), object enableServerCertificateValidation = default(object)) : base(additionalProperties, connectVia, description, parameters, annotations) { Url = url; AuthenticationType = authenticationType; UserName = userName; Password = password; + AuthHeaders = authHeaders; EmbeddedCertData = embeddedCertData; CertThumbprint = certThumbprint; EncryptedCredential = encryptedCredential; @@ -120,6 +124,14 @@ public HttpLinkedService() [JsonProperty(PropertyName = "typeProperties.password")] public SecretBase Password { get; set; } + /// + /// Gets or sets the additional HTTP headers in the request to RESTful + /// API used for authorization. Type: object (or Expression with + /// resultType object). + /// + [JsonProperty(PropertyName = "typeProperties.authHeaders")] + public object AuthHeaders { get; set; } + /// /// Gets or sets base64 encoded certificate data for ClientCertificate /// authentication. For on-premises copy with ClientCertificate diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/ODataLinkedService.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/ODataLinkedService.cs index 35aef57a1c510..de9f25138e0f8 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/ODataLinkedService.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/ODataLinkedService.cs @@ -51,6 +51,9 @@ public ODataLinkedService() /// User name of the OData service. Type: string /// (or Expression with resultType string). /// Password of the OData service. + /// The additional HTTP headers in the + /// request to RESTful API used for authorization. Type: object (or + /// Expression with resultType object). /// Specify the tenant information (domain name or /// tenant ID) under which your application resides. Type: string (or /// Expression with resultType string). @@ -84,13 +87,14 @@ public ODataLinkedService() /// authentication. Credentials are encrypted using the integration /// runtime credential manager. Type: string (or Expression with /// resultType string). - public ODataLinkedService(object url, IDictionary additionalProperties = default(IDictionary), IntegrationRuntimeReference connectVia = default(IntegrationRuntimeReference), string description = default(string), IDictionary parameters = default(IDictionary), IList annotations = default(IList), string authenticationType = default(string), object userName = default(object), SecretBase password = default(SecretBase), object tenant = default(object), object servicePrincipalId = default(object), object azureCloudType = default(object), object aadResourceId = default(object), string aadServicePrincipalCredentialType = default(string), SecretBase servicePrincipalKey = default(SecretBase), SecretBase servicePrincipalEmbeddedCert = default(SecretBase), SecretBase servicePrincipalEmbeddedCertPassword = default(SecretBase), object encryptedCredential = default(object)) + public ODataLinkedService(object url, IDictionary additionalProperties = default(IDictionary), IntegrationRuntimeReference connectVia = default(IntegrationRuntimeReference), string description = default(string), IDictionary parameters = default(IDictionary), IList annotations = default(IList), string authenticationType = default(string), object userName = default(object), SecretBase password = default(SecretBase), object authHeaders = default(object), object tenant = default(object), object servicePrincipalId = default(object), object azureCloudType = default(object), object aadResourceId = default(object), string aadServicePrincipalCredentialType = default(string), SecretBase servicePrincipalKey = default(SecretBase), SecretBase servicePrincipalEmbeddedCert = default(SecretBase), SecretBase servicePrincipalEmbeddedCertPassword = default(SecretBase), object encryptedCredential = default(object)) : base(additionalProperties, connectVia, description, parameters, annotations) { Url = url; AuthenticationType = authenticationType; UserName = userName; Password = password; + AuthHeaders = authHeaders; Tenant = tenant; ServicePrincipalId = servicePrincipalId; AzureCloudType = azureCloudType; @@ -136,6 +140,14 @@ public ODataLinkedService() [JsonProperty(PropertyName = "typeProperties.password")] public SecretBase Password { get; set; } + /// + /// Gets or sets the additional HTTP headers in the request to RESTful + /// API used for authorization. Type: object (or Expression with + /// resultType object). + /// + [JsonProperty(PropertyName = "typeProperties.authHeaders")] + public object AuthHeaders { get; set; } + /// /// Gets or sets specify the tenant information (domain name or tenant /// ID) under which your application resides. Type: string (or diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/OracleCloudStorageLinkedService.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/OracleCloudStorageLinkedService.cs new file mode 100644 index 0000000000000..2cc7f6cd072db --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/OracleCloudStorageLinkedService.cs @@ -0,0 +1,120 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + using Microsoft.Rest; + using Microsoft.Rest.Serialization; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Linked service for Oracle Cloud Storage. + /// + [Newtonsoft.Json.JsonObject("OracleCloudStorage")] + [Rest.Serialization.JsonTransformation] + public partial class OracleCloudStorageLinkedService : LinkedService + { + /// + /// Initializes a new instance of the OracleCloudStorageLinkedService + /// class. + /// + public OracleCloudStorageLinkedService() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the OracleCloudStorageLinkedService + /// class. + /// + /// Unmatched properties from the + /// message are deserialized this collection + /// The integration runtime reference. + /// Linked service description. + /// Parameters for linked service. + /// List of tags that can be used for + /// describing the linked service. + /// The access key identifier of the Oracle + /// Cloud Storage Identity and Access Management (IAM) user. Type: + /// string (or Expression with resultType string). + /// The secret access key of the Oracle + /// Cloud Storage Identity and Access Management (IAM) user. + /// This value specifies the endpoint to + /// access with the Oracle Cloud Storage Connector. This is an optional + /// property; change it only if you want to try a different service + /// endpoint or want to switch between https and http. Type: string (or + /// Expression with resultType string). + /// The encrypted credential used for + /// authentication. Credentials are encrypted using the integration + /// runtime credential manager. Type: string (or Expression with + /// resultType string). + public OracleCloudStorageLinkedService(IDictionary additionalProperties = default(IDictionary), IntegrationRuntimeReference connectVia = default(IntegrationRuntimeReference), string description = default(string), IDictionary parameters = default(IDictionary), IList annotations = default(IList), object accessKeyId = default(object), SecretBase secretAccessKey = default(SecretBase), object serviceUrl = default(object), object encryptedCredential = default(object)) + : base(additionalProperties, connectVia, description, parameters, annotations) + { + AccessKeyId = accessKeyId; + SecretAccessKey = secretAccessKey; + ServiceUrl = serviceUrl; + EncryptedCredential = encryptedCredential; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the access key identifier of the Oracle Cloud Storage + /// Identity and Access Management (IAM) user. Type: string (or + /// Expression with resultType string). + /// + [JsonProperty(PropertyName = "typeProperties.accessKeyId")] + public object AccessKeyId { get; set; } + + /// + /// Gets or sets the secret access key of the Oracle Cloud Storage + /// Identity and Access Management (IAM) user. + /// + [JsonProperty(PropertyName = "typeProperties.secretAccessKey")] + public SecretBase SecretAccessKey { get; set; } + + /// + /// Gets or sets this value specifies the endpoint to access with the + /// Oracle Cloud Storage Connector. This is an optional property; + /// change it only if you want to try a different service endpoint or + /// want to switch between https and http. Type: string (or Expression + /// with resultType string). + /// + [JsonProperty(PropertyName = "typeProperties.serviceUrl")] + public object ServiceUrl { get; set; } + + /// + /// Gets or sets the encrypted credential used for authentication. + /// Credentials are encrypted using the integration runtime credential + /// manager. Type: string (or Expression with resultType string). + /// + [JsonProperty(PropertyName = "typeProperties.encryptedCredential")] + public object EncryptedCredential { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public override void Validate() + { + base.Validate(); + } + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/OracleCloudStorageLocation.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/OracleCloudStorageLocation.cs new file mode 100644 index 0000000000000..a78781df7ec76 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/OracleCloudStorageLocation.cs @@ -0,0 +1,73 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// The location of Oracle Cloud Storage dataset. + /// + public partial class OracleCloudStorageLocation : DatasetLocation + { + /// + /// Initializes a new instance of the OracleCloudStorageLocation class. + /// + public OracleCloudStorageLocation() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the OracleCloudStorageLocation class. + /// + /// Unmatched properties from the + /// message are deserialized this collection + /// Specify the folder path of dataset. Type: + /// string (or Expression with resultType string) + /// Specify the file name of dataset. Type: + /// string (or Expression with resultType string). + /// Specify the bucketName of Oracle Cloud + /// Storage. Type: string (or Expression with resultType + /// string) + /// Specify the version of Oracle Cloud Storage. + /// Type: string (or Expression with resultType string). + public OracleCloudStorageLocation(IDictionary additionalProperties = default(IDictionary), object folderPath = default(object), object fileName = default(object), object bucketName = default(object), object version = default(object)) + : base(additionalProperties, folderPath, fileName) + { + BucketName = bucketName; + Version = version; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets specify the bucketName of Oracle Cloud Storage. Type: + /// string (or Expression with resultType string) + /// + [JsonProperty(PropertyName = "bucketName")] + public object BucketName { get; set; } + + /// + /// Gets or sets specify the version of Oracle Cloud Storage. Type: + /// string (or Expression with resultType string). + /// + [JsonProperty(PropertyName = "version")] + public object Version { get; set; } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/OracleCloudStorageReadSettings.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/OracleCloudStorageReadSettings.cs new file mode 100644 index 0000000000000..5d673526766c2 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/OracleCloudStorageReadSettings.cs @@ -0,0 +1,166 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Oracle Cloud Storage read settings. + /// + public partial class OracleCloudStorageReadSettings : StoreReadSettings + { + /// + /// Initializes a new instance of the OracleCloudStorageReadSettings + /// class. + /// + public OracleCloudStorageReadSettings() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the OracleCloudStorageReadSettings + /// class. + /// + /// Unmatched properties from the + /// message are deserialized this collection + /// The maximum concurrent + /// connection count for the source data store. Type: integer (or + /// Expression with resultType integer). + /// If true, files under the folder path will + /// be read recursively. Default is true. Type: boolean (or Expression + /// with resultType boolean). + /// Oracle Cloud Storage + /// wildcardFolderPath. Type: string (or Expression with resultType + /// string). + /// Oracle Cloud Storage + /// wildcardFileName. Type: string (or Expression with resultType + /// string). + /// The prefix filter for the Oracle Cloud Storage + /// object name. Type: string (or Expression with resultType + /// string). + /// Point to a text file that lists each + /// file (relative path to the path configured in the dataset) that you + /// want to copy. Type: string (or Expression with resultType + /// string). + /// Indicates whether to enable + /// partition discovery. + /// Specify the root path where + /// partition discovery starts from. Type: string (or Expression with + /// resultType string). + /// Indicates whether the + /// source files need to be deleted after copy completion. Default is + /// false. Type: boolean (or Expression with resultType + /// boolean). + /// The start of file's modified + /// datetime. Type: string (or Expression with resultType + /// string). + /// The end of file's modified + /// datetime. Type: string (or Expression with resultType + /// string). + public OracleCloudStorageReadSettings(IDictionary additionalProperties = default(IDictionary), object maxConcurrentConnections = default(object), object recursive = default(object), object wildcardFolderPath = default(object), object wildcardFileName = default(object), object prefix = default(object), object fileListPath = default(object), bool? enablePartitionDiscovery = default(bool?), object partitionRootPath = default(object), object deleteFilesAfterCompletion = default(object), object modifiedDatetimeStart = default(object), object modifiedDatetimeEnd = default(object)) + : base(additionalProperties, maxConcurrentConnections) + { + Recursive = recursive; + WildcardFolderPath = wildcardFolderPath; + WildcardFileName = wildcardFileName; + Prefix = prefix; + FileListPath = fileListPath; + EnablePartitionDiscovery = enablePartitionDiscovery; + PartitionRootPath = partitionRootPath; + DeleteFilesAfterCompletion = deleteFilesAfterCompletion; + ModifiedDatetimeStart = modifiedDatetimeStart; + ModifiedDatetimeEnd = modifiedDatetimeEnd; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets if true, files under the folder path will be read + /// recursively. Default is true. Type: boolean (or Expression with + /// resultType boolean). + /// + [JsonProperty(PropertyName = "recursive")] + public object Recursive { get; set; } + + /// + /// Gets or sets oracle Cloud Storage wildcardFolderPath. Type: string + /// (or Expression with resultType string). + /// + [JsonProperty(PropertyName = "wildcardFolderPath")] + public object WildcardFolderPath { get; set; } + + /// + /// Gets or sets oracle Cloud Storage wildcardFileName. Type: string + /// (or Expression with resultType string). + /// + [JsonProperty(PropertyName = "wildcardFileName")] + public object WildcardFileName { get; set; } + + /// + /// Gets or sets the prefix filter for the Oracle Cloud Storage object + /// name. Type: string (or Expression with resultType string). + /// + [JsonProperty(PropertyName = "prefix")] + public object Prefix { get; set; } + + /// + /// Gets or sets point to a text file that lists each file (relative + /// path to the path configured in the dataset) that you want to copy. + /// Type: string (or Expression with resultType string). + /// + [JsonProperty(PropertyName = "fileListPath")] + public object FileListPath { get; set; } + + /// + /// Gets or sets indicates whether to enable partition discovery. + /// + [JsonProperty(PropertyName = "enablePartitionDiscovery")] + public bool? EnablePartitionDiscovery { get; set; } + + /// + /// Gets or sets specify the root path where partition discovery starts + /// from. Type: string (or Expression with resultType string). + /// + [JsonProperty(PropertyName = "partitionRootPath")] + public object PartitionRootPath { get; set; } + + /// + /// Gets or sets indicates whether the source files need to be deleted + /// after copy completion. Default is false. Type: boolean (or + /// Expression with resultType boolean). + /// + [JsonProperty(PropertyName = "deleteFilesAfterCompletion")] + public object DeleteFilesAfterCompletion { get; set; } + + /// + /// Gets or sets the start of file's modified datetime. Type: string + /// (or Expression with resultType string). + /// + [JsonProperty(PropertyName = "modifiedDatetimeStart")] + public object ModifiedDatetimeStart { get; set; } + + /// + /// Gets or sets the end of file's modified datetime. Type: string (or + /// Expression with resultType string). + /// + [JsonProperty(PropertyName = "modifiedDatetimeEnd")] + public object ModifiedDatetimeEnd { get; set; } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateEndpointConnectionResource.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateEndpointConnectionResource.cs new file mode 100644 index 0000000000000..b458b38f22c69 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateEndpointConnectionResource.cs @@ -0,0 +1,58 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// Private Endpoint Connection ARM resource. + /// + public partial class PrivateEndpointConnectionResource : SubResource + { + /// + /// Initializes a new instance of the PrivateEndpointConnectionResource + /// class. + /// + public PrivateEndpointConnectionResource() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the PrivateEndpointConnectionResource + /// class. + /// + /// The resource identifier. + /// The resource name. + /// The resource type. + /// Etag identifies change in the resource. + /// Core resource properties + public PrivateEndpointConnectionResource(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), RemotePrivateEndpointConnection properties = default(RemotePrivateEndpointConnection)) + : base(id, name, type, etag) + { + Properties = properties; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets core resource properties + /// + [JsonProperty(PropertyName = "properties")] + public RemotePrivateEndpointConnection Properties { get; set; } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkConnectionApprovalRequest.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkConnectionApprovalRequest.cs new file mode 100644 index 0000000000000..8738edfa640ef --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkConnectionApprovalRequest.cs @@ -0,0 +1,51 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// A request to approve or reject a private endpoint connection + /// + public partial class PrivateLinkConnectionApprovalRequest + { + /// + /// Initializes a new instance of the + /// PrivateLinkConnectionApprovalRequest class. + /// + public PrivateLinkConnectionApprovalRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the + /// PrivateLinkConnectionApprovalRequest class. + /// + public PrivateLinkConnectionApprovalRequest(PrivateLinkConnectionState privateLinkServiceConnectionState = default(PrivateLinkConnectionState)) + { + PrivateLinkServiceConnectionState = privateLinkServiceConnectionState; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "privateLinkServiceConnectionState")] + public PrivateLinkConnectionState PrivateLinkServiceConnectionState { get; set; } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkConnectionApprovalRequestResource.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkConnectionApprovalRequestResource.cs new file mode 100644 index 0000000000000..4104026c9a5d5 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkConnectionApprovalRequestResource.cs @@ -0,0 +1,58 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// Private Endpoint Connection Approval ARM resource. + /// + public partial class PrivateLinkConnectionApprovalRequestResource : SubResource + { + /// + /// Initializes a new instance of the + /// PrivateLinkConnectionApprovalRequestResource class. + /// + public PrivateLinkConnectionApprovalRequestResource() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the + /// PrivateLinkConnectionApprovalRequestResource class. + /// + /// The resource identifier. + /// The resource name. + /// The resource type. + /// Etag identifies change in the resource. + /// Core resource properties + public PrivateLinkConnectionApprovalRequestResource(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), PrivateLinkConnectionApprovalRequest properties = default(PrivateLinkConnectionApprovalRequest)) + : base(id, name, type, etag) + { + Properties = properties; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets core resource properties + /// + [JsonProperty(PropertyName = "properties")] + public PrivateLinkConnectionApprovalRequest Properties { get; set; } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkConnectionState.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkConnectionState.cs new file mode 100644 index 0000000000000..9a7185886b870 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkConnectionState.cs @@ -0,0 +1,69 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// The state of a private link connection + /// + public partial class PrivateLinkConnectionState + { + /// + /// Initializes a new instance of the PrivateLinkConnectionState class. + /// + public PrivateLinkConnectionState() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the PrivateLinkConnectionState class. + /// + /// Status of a private link connection + /// Description of a private link + /// connection + /// ActionsRequired for a private link + /// connection + public PrivateLinkConnectionState(string status = default(string), string description = default(string), string actionsRequired = default(string)) + { + Status = status; + Description = description; + ActionsRequired = actionsRequired; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets status of a private link connection + /// + [JsonProperty(PropertyName = "status")] + public string Status { get; set; } + + /// + /// Gets or sets description of a private link connection + /// + [JsonProperty(PropertyName = "description")] + public string Description { get; set; } + + /// + /// Gets or sets actionsRequired for a private link connection + /// + [JsonProperty(PropertyName = "actionsRequired")] + public string ActionsRequired { get; set; } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkResource.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkResource.cs new file mode 100644 index 0000000000000..2436c1b94a892 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkResource.cs @@ -0,0 +1,56 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// A private link resource + /// + public partial class PrivateLinkResource : SubResource + { + /// + /// Initializes a new instance of the PrivateLinkResource class. + /// + public PrivateLinkResource() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the PrivateLinkResource class. + /// + /// The resource identifier. + /// The resource name. + /// The resource type. + /// Etag identifies change in the resource. + /// Core resource properties + public PrivateLinkResource(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), PrivateLinkResourceProperties properties = default(PrivateLinkResourceProperties)) + : base(id, name, type, etag) + { + Properties = properties; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets core resource properties + /// + [JsonProperty(PropertyName = "properties")] + public PrivateLinkResourceProperties Properties { get; set; } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkResourceProperties.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkResourceProperties.cs new file mode 100644 index 0000000000000..84022fc719623 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkResourceProperties.cs @@ -0,0 +1,73 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Properties of a private link resource + /// + public partial class PrivateLinkResourceProperties + { + /// + /// Initializes a new instance of the PrivateLinkResourceProperties + /// class. + /// + public PrivateLinkResourceProperties() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the PrivateLinkResourceProperties + /// class. + /// + /// GroupId of a private link resource + /// RequiredMembers of a private link + /// resource + /// RequiredZoneNames of a private link + /// resource + public PrivateLinkResourceProperties(string groupId = default(string), IList requiredMembers = default(IList), IList requiredZoneNames = default(IList)) + { + GroupId = groupId; + RequiredMembers = requiredMembers; + RequiredZoneNames = requiredZoneNames; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets groupId of a private link resource + /// + [JsonProperty(PropertyName = "groupId")] + public string GroupId { get; private set; } + + /// + /// Gets requiredMembers of a private link resource + /// + [JsonProperty(PropertyName = "requiredMembers")] + public IList RequiredMembers { get; private set; } + + /// + /// Gets requiredZoneNames of a private link resource + /// + [JsonProperty(PropertyName = "requiredZoneNames")] + public IList RequiredZoneNames { get; private set; } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkResourcesWrapper.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkResourcesWrapper.cs new file mode 100644 index 0000000000000..1890108dffe18 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/PrivateLinkResourcesWrapper.cs @@ -0,0 +1,67 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Wrapper for a collection of private link resources + /// + public partial class PrivateLinkResourcesWrapper + { + /// + /// Initializes a new instance of the PrivateLinkResourcesWrapper + /// class. + /// + public PrivateLinkResourcesWrapper() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the PrivateLinkResourcesWrapper + /// class. + /// + public PrivateLinkResourcesWrapper(IList value) + { + Value = value; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "value")] + public IList Value { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Value == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "Value"); + } + } + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/RemotePrivateEndpointConnection.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/RemotePrivateEndpointConnection.cs new file mode 100644 index 0000000000000..f9fbda79b7358 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/RemotePrivateEndpointConnection.cs @@ -0,0 +1,67 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// A remote private endpoint connection + /// + public partial class RemotePrivateEndpointConnection + { + /// + /// Initializes a new instance of the RemotePrivateEndpointConnection + /// class. + /// + public RemotePrivateEndpointConnection() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the RemotePrivateEndpointConnection + /// class. + /// + /// PrivateEndpoint of a remote private + /// endpoint connection + public RemotePrivateEndpointConnection(string provisioningState = default(string), ArmIdWrapper privateEndpoint = default(ArmIdWrapper), PrivateLinkConnectionState privateLinkServiceConnectionState = default(PrivateLinkConnectionState)) + { + ProvisioningState = provisioningState; + PrivateEndpoint = privateEndpoint; + PrivateLinkServiceConnectionState = privateLinkServiceConnectionState; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "provisioningState")] + public string ProvisioningState { get; private set; } + + /// + /// Gets or sets privateEndpoint of a remote private endpoint + /// connection + /// + [JsonProperty(PropertyName = "privateEndpoint")] + public ArmIdWrapper PrivateEndpoint { get; set; } + + /// + /// + [JsonProperty(PropertyName = "privateLinkServiceConnectionState")] + public PrivateLinkConnectionState PrivateLinkServiceConnectionState { get; set; } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/RestServiceLinkedService.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/RestServiceLinkedService.cs index ef7a9bf8a1bd5..9d01c779f3fb7 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/RestServiceLinkedService.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/RestServiceLinkedService.cs @@ -54,6 +54,9 @@ public RestServiceLinkedService() /// type. /// The password used in Basic authentication /// type. + /// The additional HTTP headers in the + /// request to RESTful API used for authorization. Type: object (or + /// Expression with resultType object). /// The application's client ID used /// in AadServicePrincipal authentication type. /// The application's key used in @@ -72,7 +75,7 @@ public RestServiceLinkedService() /// authentication. Credentials are encrypted using the integration /// runtime credential manager. Type: string (or Expression with /// resultType string). - public RestServiceLinkedService(object url, string authenticationType, IDictionary additionalProperties = default(IDictionary), IntegrationRuntimeReference connectVia = default(IntegrationRuntimeReference), string description = default(string), IDictionary parameters = default(IDictionary), IList annotations = default(IList), object enableServerCertificateValidation = default(object), object userName = default(object), SecretBase password = default(SecretBase), object servicePrincipalId = default(object), SecretBase servicePrincipalKey = default(SecretBase), object tenant = default(object), object azureCloudType = default(object), object aadResourceId = default(object), object encryptedCredential = default(object)) + public RestServiceLinkedService(object url, string authenticationType, IDictionary additionalProperties = default(IDictionary), IntegrationRuntimeReference connectVia = default(IntegrationRuntimeReference), string description = default(string), IDictionary parameters = default(IDictionary), IList annotations = default(IList), object enableServerCertificateValidation = default(object), object userName = default(object), SecretBase password = default(SecretBase), object authHeaders = default(object), object servicePrincipalId = default(object), SecretBase servicePrincipalKey = default(SecretBase), object tenant = default(object), object azureCloudType = default(object), object aadResourceId = default(object), object encryptedCredential = default(object)) : base(additionalProperties, connectVia, description, parameters, annotations) { Url = url; @@ -80,6 +83,7 @@ public RestServiceLinkedService() AuthenticationType = authenticationType; UserName = userName; Password = password; + AuthHeaders = authHeaders; ServicePrincipalId = servicePrincipalId; ServicePrincipalKey = servicePrincipalKey; Tenant = tenant; @@ -128,6 +132,14 @@ public RestServiceLinkedService() [JsonProperty(PropertyName = "typeProperties.password")] public SecretBase Password { get; set; } + /// + /// Gets or sets the additional HTTP headers in the request to RESTful + /// API used for authorization. Type: object (or Expression with + /// resultType object). + /// + [JsonProperty(PropertyName = "typeProperties.authHeaders")] + public object AuthHeaders { get; set; } + /// /// Gets or sets the application's client ID used in /// AadServicePrincipal authentication type. diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/SftpAuthenticationType.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/SftpAuthenticationType.cs index 3723a2ea06624..e7d93b9a8692a 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/SftpAuthenticationType.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/SftpAuthenticationType.cs @@ -18,5 +18,6 @@ public static class SftpAuthenticationType { public const string Basic = "Basic"; public const string SshPublicKey = "SshPublicKey"; + public const string MultiFactor = "MultiFactor"; } } diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/SftpServerLinkedService.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/SftpServerLinkedService.cs index 39509f45ebece..9ca1ed34ff3f0 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/SftpServerLinkedService.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/Models/SftpServerLinkedService.cs @@ -49,7 +49,7 @@ public SftpServerLinkedService() /// (or Expression with resultType integer), minimum: 0. /// The authentication type to be used /// to connect to the FTP server. Possible values include: 'Basic', - /// 'SshPublicKey' + /// 'SshPublicKey', 'MultiFactor' /// The username used to log on to the SFTP /// server. Type: string (or Expression with resultType /// string). @@ -118,7 +118,8 @@ public SftpServerLinkedService() /// /// Gets or sets the authentication type to be used to connect to the - /// FTP server. Possible values include: 'Basic', 'SshPublicKey' + /// FTP server. Possible values include: 'Basic', 'SshPublicKey', + /// 'MultiFactor' /// [JsonProperty(PropertyName = "typeProperties.authenticationType")] public string AuthenticationType { get; set; } diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateEndPointConnectionsOperations.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateEndPointConnectionsOperations.cs new file mode 100644 index 0000000000000..ffedd38c80e44 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateEndPointConnectionsOperations.cs @@ -0,0 +1,453 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory +{ + using Microsoft.Rest; + using Microsoft.Rest.Azure; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// PrivateEndPointConnectionsOperations operations. + /// + internal partial class PrivateEndPointConnectionsOperations : IServiceOperations, IPrivateEndPointConnectionsOperations + { + /// + /// Initializes a new instance of the PrivateEndPointConnectionsOperations class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + internal PrivateEndPointConnectionsOperations(DataFactoryManagementClient client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the DataFactoryManagementClient + /// + public DataFactoryManagementClient Client { get; private set; } + + /// + /// Lists Private endpoint connections + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> ListByFactoryWithHttpMessagesAsync(string resourceGroupName, string factoryName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (resourceGroupName != null) + { + if (resourceGroupName.Length > 90) + { + throw new ValidationException(ValidationRules.MaxLength, "resourceGroupName", 90); + } + if (resourceGroupName.Length < 1) + { + throw new ValidationException(ValidationRules.MinLength, "resourceGroupName", 1); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(resourceGroupName, "^[-\\w\\._\\(\\)]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "resourceGroupName", "^[-\\w\\._\\(\\)]+$"); + } + } + if (factoryName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "factoryName"); + } + if (factoryName != null) + { + if (factoryName.Length > 63) + { + throw new ValidationException(ValidationRules.MaxLength, "factoryName", 63); + } + if (factoryName.Length < 3) + { + throw new ValidationException(ValidationRules.MinLength, "factoryName", 3); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(factoryName, "^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$")) + { + throw new ValidationException(ValidationRules.Pattern, "factoryName", "^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$"); + } + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("factoryName", factoryName); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "ListByFactory", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/privateEndPointConnections").ToString(); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{factoryName}", System.Uri.EscapeDataString(factoryName)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new AzureOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Lists Private endpoint connections + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> ListByFactoryNextWithHttpMessagesAsync(string nextPageLink, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (nextPageLink == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "nextPageLink"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("nextPageLink", nextPageLink); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "ListByFactoryNext", tracingParameters); + } + // Construct URL + string _url = "{nextLink}"; + _url = _url.Replace("{nextLink}", nextPageLink); + List _queryParameters = new List(); + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new AzureOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateEndPointConnectionsOperationsExtensions.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateEndPointConnectionsOperationsExtensions.cs new file mode 100644 index 0000000000000..52b4908a1e3f2 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateEndPointConnectionsOperationsExtensions.cs @@ -0,0 +1,99 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory +{ + using Microsoft.Rest; + using Microsoft.Rest.Azure; + using Models; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for PrivateEndPointConnectionsOperations. + /// + public static partial class PrivateEndPointConnectionsOperationsExtensions + { + /// + /// Lists Private endpoint connections + /// + /// + /// The operations group for this extension method. + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + public static IPage ListByFactory(this IPrivateEndPointConnectionsOperations operations, string resourceGroupName, string factoryName) + { + return operations.ListByFactoryAsync(resourceGroupName, factoryName).GetAwaiter().GetResult(); + } + + /// + /// Lists Private endpoint connections + /// + /// + /// The operations group for this extension method. + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// The cancellation token. + /// + public static async Task> ListByFactoryAsync(this IPrivateEndPointConnectionsOperations operations, string resourceGroupName, string factoryName, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.ListByFactoryWithHttpMessagesAsync(resourceGroupName, factoryName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Lists Private endpoint connections + /// + /// + /// The operations group for this extension method. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + public static IPage ListByFactoryNext(this IPrivateEndPointConnectionsOperations operations, string nextPageLink) + { + return operations.ListByFactoryNextAsync(nextPageLink).GetAwaiter().GetResult(); + } + + /// + /// Lists Private endpoint connections + /// + /// + /// The operations group for this extension method. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// The cancellation token. + /// + public static async Task> ListByFactoryNextAsync(this IPrivateEndPointConnectionsOperations operations, string nextPageLink, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.ListByFactoryNextWithHttpMessagesAsync(nextPageLink, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateEndpointConnectionOperations.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateEndpointConnectionOperations.cs new file mode 100644 index 0000000000000..09a4dc3b84d12 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateEndpointConnectionOperations.cs @@ -0,0 +1,779 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory +{ + using Microsoft.Rest; + using Microsoft.Rest.Azure; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// PrivateEndpointConnectionOperations operations. + /// + internal partial class PrivateEndpointConnectionOperations : IServiceOperations, IPrivateEndpointConnectionOperations + { + /// + /// Initializes a new instance of the PrivateEndpointConnectionOperations class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + internal PrivateEndpointConnectionOperations(DataFactoryManagementClient client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the DataFactoryManagementClient + /// + public DataFactoryManagementClient Client { get; private set; } + + /// + /// Approves or rejects a private endpoint connection + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// The private endpoint connection name. + /// + /// + /// + /// + /// ETag of the private endpoint connection entity. Should only be specified + /// for update, for which it should match existing entity or can be * for + /// unconditional update. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> CreateOrUpdateWithHttpMessagesAsync(string resourceGroupName, string factoryName, string privateEndpointConnectionName, PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper, string ifMatch = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (resourceGroupName != null) + { + if (resourceGroupName.Length > 90) + { + throw new ValidationException(ValidationRules.MaxLength, "resourceGroupName", 90); + } + if (resourceGroupName.Length < 1) + { + throw new ValidationException(ValidationRules.MinLength, "resourceGroupName", 1); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(resourceGroupName, "^[-\\w\\._\\(\\)]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "resourceGroupName", "^[-\\w\\._\\(\\)]+$"); + } + } + if (factoryName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "factoryName"); + } + if (factoryName != null) + { + if (factoryName.Length > 63) + { + throw new ValidationException(ValidationRules.MaxLength, "factoryName", 63); + } + if (factoryName.Length < 3) + { + throw new ValidationException(ValidationRules.MinLength, "factoryName", 3); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(factoryName, "^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$")) + { + throw new ValidationException(ValidationRules.Pattern, "factoryName", "^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$"); + } + } + if (privateEndpointConnectionName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "privateEndpointConnectionName"); + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + if (privateEndpointWrapper == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "privateEndpointWrapper"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("factoryName", factoryName); + tracingParameters.Add("privateEndpointConnectionName", privateEndpointConnectionName); + tracingParameters.Add("ifMatch", ifMatch); + tracingParameters.Add("privateEndpointWrapper", privateEndpointWrapper); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "CreateOrUpdate", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/privateEndpointConnections/{privateEndpointConnectionName}").ToString(); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{factoryName}", System.Uri.EscapeDataString(factoryName)); + _url = _url.Replace("{privateEndpointConnectionName}", System.Uri.EscapeDataString(privateEndpointConnectionName)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PUT"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (ifMatch != null) + { + if (_httpRequest.Headers.Contains("If-Match")) + { + _httpRequest.Headers.Remove("If-Match"); + } + _httpRequest.Headers.TryAddWithoutValidation("If-Match", ifMatch); + } + if (Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(privateEndpointWrapper != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(privateEndpointWrapper, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new AzureOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Gets a private endpoint connection + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// The private endpoint connection name. + /// + /// + /// ETag of the private endpoint connection entity. Should only be specified + /// for get. If the ETag matches the existing entity tag, or if * was provided, + /// then no content will be returned. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetWithHttpMessagesAsync(string resourceGroupName, string factoryName, string privateEndpointConnectionName, string ifNoneMatch = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (resourceGroupName != null) + { + if (resourceGroupName.Length > 90) + { + throw new ValidationException(ValidationRules.MaxLength, "resourceGroupName", 90); + } + if (resourceGroupName.Length < 1) + { + throw new ValidationException(ValidationRules.MinLength, "resourceGroupName", 1); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(resourceGroupName, "^[-\\w\\._\\(\\)]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "resourceGroupName", "^[-\\w\\._\\(\\)]+$"); + } + } + if (factoryName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "factoryName"); + } + if (factoryName != null) + { + if (factoryName.Length > 63) + { + throw new ValidationException(ValidationRules.MaxLength, "factoryName", 63); + } + if (factoryName.Length < 3) + { + throw new ValidationException(ValidationRules.MinLength, "factoryName", 3); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(factoryName, "^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$")) + { + throw new ValidationException(ValidationRules.Pattern, "factoryName", "^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$"); + } + } + if (privateEndpointConnectionName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "privateEndpointConnectionName"); + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("factoryName", factoryName); + tracingParameters.Add("privateEndpointConnectionName", privateEndpointConnectionName); + tracingParameters.Add("ifNoneMatch", ifNoneMatch); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/privateEndpointConnections/{privateEndpointConnectionName}").ToString(); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{factoryName}", System.Uri.EscapeDataString(factoryName)); + _url = _url.Replace("{privateEndpointConnectionName}", System.Uri.EscapeDataString(privateEndpointConnectionName)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (ifNoneMatch != null) + { + if (_httpRequest.Headers.Contains("If-None-Match")) + { + _httpRequest.Headers.Remove("If-None-Match"); + } + _httpRequest.Headers.TryAddWithoutValidation("If-None-Match", ifNoneMatch); + } + if (Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new AzureOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Deletes a private endpoint connection + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// The private endpoint connection name. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task DeleteWithHttpMessagesAsync(string resourceGroupName, string factoryName, string privateEndpointConnectionName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (resourceGroupName != null) + { + if (resourceGroupName.Length > 90) + { + throw new ValidationException(ValidationRules.MaxLength, "resourceGroupName", 90); + } + if (resourceGroupName.Length < 1) + { + throw new ValidationException(ValidationRules.MinLength, "resourceGroupName", 1); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(resourceGroupName, "^[-\\w\\._\\(\\)]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "resourceGroupName", "^[-\\w\\._\\(\\)]+$"); + } + } + if (factoryName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "factoryName"); + } + if (factoryName != null) + { + if (factoryName.Length > 63) + { + throw new ValidationException(ValidationRules.MaxLength, "factoryName", 63); + } + if (factoryName.Length < 3) + { + throw new ValidationException(ValidationRules.MinLength, "factoryName", 3); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(factoryName, "^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$")) + { + throw new ValidationException(ValidationRules.Pattern, "factoryName", "^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$"); + } + } + if (privateEndpointConnectionName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "privateEndpointConnectionName"); + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("factoryName", factoryName); + tracingParameters.Add("privateEndpointConnectionName", privateEndpointConnectionName); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/privateEndpointConnections/{privateEndpointConnectionName}").ToString(); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{factoryName}", System.Uri.EscapeDataString(factoryName)); + _url = _url.Replace("{privateEndpointConnectionName}", System.Uri.EscapeDataString(privateEndpointConnectionName)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200 && (int)_statusCode != 204) + { + var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new AzureOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateEndpointConnectionOperationsExtensions.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateEndpointConnectionOperationsExtensions.cs new file mode 100644 index 0000000000000..e1afbd95ccf27 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateEndpointConnectionOperationsExtensions.cs @@ -0,0 +1,184 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory +{ + using Microsoft.Rest; + using Microsoft.Rest.Azure; + using Models; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for PrivateEndpointConnectionOperations. + /// + public static partial class PrivateEndpointConnectionOperationsExtensions + { + /// + /// Approves or rejects a private endpoint connection + /// + /// + /// The operations group for this extension method. + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// The private endpoint connection name. + /// + /// + /// + /// + /// ETag of the private endpoint connection entity. Should only be specified + /// for update, for which it should match existing entity or can be * for + /// unconditional update. + /// + public static PrivateEndpointConnectionResource CreateOrUpdate(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string factoryName, string privateEndpointConnectionName, PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper, string ifMatch = default(string)) + { + return operations.CreateOrUpdateAsync(resourceGroupName, factoryName, privateEndpointConnectionName, privateEndpointWrapper, ifMatch).GetAwaiter().GetResult(); + } + + /// + /// Approves or rejects a private endpoint connection + /// + /// + /// The operations group for this extension method. + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// The private endpoint connection name. + /// + /// + /// + /// + /// ETag of the private endpoint connection entity. Should only be specified + /// for update, for which it should match existing entity or can be * for + /// unconditional update. + /// + /// + /// The cancellation token. + /// + public static async Task CreateOrUpdateAsync(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string factoryName, string privateEndpointConnectionName, PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper, string ifMatch = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, factoryName, privateEndpointConnectionName, privateEndpointWrapper, ifMatch, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Gets a private endpoint connection + /// + /// + /// The operations group for this extension method. + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// The private endpoint connection name. + /// + /// + /// ETag of the private endpoint connection entity. Should only be specified + /// for get. If the ETag matches the existing entity tag, or if * was provided, + /// then no content will be returned. + /// + public static PrivateEndpointConnectionResource Get(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string factoryName, string privateEndpointConnectionName, string ifNoneMatch = default(string)) + { + return operations.GetAsync(resourceGroupName, factoryName, privateEndpointConnectionName, ifNoneMatch).GetAwaiter().GetResult(); + } + + /// + /// Gets a private endpoint connection + /// + /// + /// The operations group for this extension method. + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// The private endpoint connection name. + /// + /// + /// ETag of the private endpoint connection entity. Should only be specified + /// for get. If the ETag matches the existing entity tag, or if * was provided, + /// then no content will be returned. + /// + /// + /// The cancellation token. + /// + public static async Task GetAsync(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string factoryName, string privateEndpointConnectionName, string ifNoneMatch = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetWithHttpMessagesAsync(resourceGroupName, factoryName, privateEndpointConnectionName, ifNoneMatch, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Deletes a private endpoint connection + /// + /// + /// The operations group for this extension method. + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// The private endpoint connection name. + /// + public static void Delete(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string factoryName, string privateEndpointConnectionName) + { + operations.DeleteAsync(resourceGroupName, factoryName, privateEndpointConnectionName).GetAwaiter().GetResult(); + } + + /// + /// Deletes a private endpoint connection + /// + /// + /// The operations group for this extension method. + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// The private endpoint connection name. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteAsync(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string factoryName, string privateEndpointConnectionName, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.DeleteWithHttpMessagesAsync(resourceGroupName, factoryName, privateEndpointConnectionName, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateLinkResourcesOperations.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateLinkResourcesOperations.cs new file mode 100644 index 0000000000000..9f60f8af0d7af --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateLinkResourcesOperations.cs @@ -0,0 +1,280 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory +{ + using Microsoft.Rest; + using Microsoft.Rest.Azure; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// PrivateLinkResourcesOperations operations. + /// + internal partial class PrivateLinkResourcesOperations : IServiceOperations, IPrivateLinkResourcesOperations + { + /// + /// Initializes a new instance of the PrivateLinkResourcesOperations class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + internal PrivateLinkResourcesOperations(DataFactoryManagementClient client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the DataFactoryManagementClient + /// + public DataFactoryManagementClient Client { get; private set; } + + /// + /// Gets the private link resources + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetWithHttpMessagesAsync(string resourceGroupName, string factoryName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (resourceGroupName != null) + { + if (resourceGroupName.Length > 90) + { + throw new ValidationException(ValidationRules.MaxLength, "resourceGroupName", 90); + } + if (resourceGroupName.Length < 1) + { + throw new ValidationException(ValidationRules.MinLength, "resourceGroupName", 1); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(resourceGroupName, "^[-\\w\\._\\(\\)]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "resourceGroupName", "^[-\\w\\._\\(\\)]+$"); + } + } + if (factoryName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "factoryName"); + } + if (factoryName != null) + { + if (factoryName.Length > 63) + { + throw new ValidationException(ValidationRules.MaxLength, "factoryName", 63); + } + if (factoryName.Length < 3) + { + throw new ValidationException(ValidationRules.MinLength, "factoryName", 3); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(factoryName, "^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$")) + { + throw new ValidationException(ValidationRules.Pattern, "factoryName", "^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$"); + } + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("factoryName", factoryName); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/privateLinkResources").ToString(); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{factoryName}", System.Uri.EscapeDataString(factoryName)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new AzureOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateLinkResourcesOperationsExtensions.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateLinkResourcesOperationsExtensions.cs new file mode 100644 index 0000000000000..b2d2795876e31 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Generated/PrivateLinkResourcesOperationsExtensions.cs @@ -0,0 +1,65 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.DataFactory +{ + using Microsoft.Rest; + using Microsoft.Rest.Azure; + using Models; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for PrivateLinkResourcesOperations. + /// + public static partial class PrivateLinkResourcesOperationsExtensions + { + /// + /// Gets the private link resources + /// + /// + /// The operations group for this extension method. + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + public static PrivateLinkResourcesWrapper Get(this IPrivateLinkResourcesOperations operations, string resourceGroupName, string factoryName) + { + return operations.GetAsync(resourceGroupName, factoryName).GetAwaiter().GetResult(); + } + + /// + /// Gets the private link resources + /// + /// + /// The operations group for this extension method. + /// + /// + /// The resource group name. + /// + /// + /// The factory name. + /// + /// + /// The cancellation token. + /// + public static async Task GetAsync(this IPrivateLinkResourcesOperations operations, string resourceGroupName, string factoryName, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetWithHttpMessagesAsync(resourceGroupName, factoryName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Microsoft.Azure.Management.DataFactory.csproj b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Microsoft.Azure.Management.DataFactory.csproj index 981442bf26285..83ad9fb362b9a 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Microsoft.Azure.Management.DataFactory.csproj +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Microsoft.Azure.Management.DataFactory.csproj @@ -5,15 +5,19 @@ Microsoft.Azure.Management.DataFactory Azure Data Factory V2 is the data integration platform that goes beyond Azure Data Factory V1's orchestration and batch-processing of time-series data, with a general purpose app model supporting modern data warehousing patterns and scenarios, lift-and-shift SSIS, and data-driven SaaS applications. Compose and manage reliable and secure data integration workflows at scale. Use native ADF data connectors and Integration Runtimes to move and transform cloud and on-premises data that can be unstructured, semi-structured, and structured with Hadoop, Azure Data Lake, Spark, SQL Server, Cosmos DB and many other data platforms. - 4.15.0 + 4.16.0 Microsoft.Azure.Management.DataFactory Microsoft Azure resource management;Data Factory;ADF; diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Properties/AssemblyInfo.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Properties/AssemblyInfo.cs index 3c8ccb3d4b277..336ad49b0bba1 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Properties/AssemblyInfo.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/src/Properties/AssemblyInfo.cs @@ -6,8 +6,8 @@ [assembly: AssemblyTitle("Microsoft Azure Data Factory Management Library")] [assembly: AssemblyDescription("Provides management functionality for Microsoft Azure Data Factory Resources.")] -[assembly: AssemblyVersion("4.15.0.0")] -[assembly: AssemblyFileVersion("4.15.0.0")] +[assembly: AssemblyVersion("4.16.0.0")] +[assembly: AssemblyFileVersion("4.16.0.0")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Microsoft")] [assembly: AssemblyProduct("Microsoft Azure .NET SDK")] diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/JsonSamples/DatasetJsonSamples.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/JsonSamples/DatasetJsonSamples.cs index 28d3dcece7942..da6901870665a 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/JsonSamples/DatasetJsonSamples.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/JsonSamples/DatasetJsonSamples.cs @@ -2024,6 +2024,60 @@ public class DatasetJsonSamples : JsonSampleCollection } }"; + [JsonSample] + public const string AmazonS3CompatibleDataset = @" +{ + name: ""AmazonS3CompatibleWithTextDataset"", + properties: + { + type: ""DelimitedText"", + linkedServiceName: + { + referenceName : ""ls"", + type : ""LinkedServiceReference"" + }, + typeProperties: + { + ""location"": { + ""type"": ""AmazonS3CompatibleLocation"", + ""bucketName"": ""bucketname"", + ""version"": ""version"" + }, + ""columnDelimiter"": "","", + ""quoteChar"": ""\"""", + ""firstRowAsHeader"": true, + ""compressionCodec"": ""gzip"" + }, + } +}"; + + [JsonSample] + public const string OracleCloudStorageDataset = @" +{ + name: ""OracleCloudStorageWithTextDataset"", + properties: + { + type: ""DelimitedText"", + linkedServiceName: + { + referenceName : ""ls"", + type : ""LinkedServiceReference"" + }, + typeProperties: + { + ""location"": { + ""type"": ""OracleCloudStorageLocation"", + ""bucketName"": ""bucketname"", + ""version"": ""version"" + }, + ""columnDelimiter"": "","", + ""quoteChar"": ""\"""", + ""firstRowAsHeader"": true, + ""compressionCodec"": ""gzip"" + }, + } +}"; + [JsonSample] public const string SharePointOnlineListResource = @" { diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/JsonSamples/LinkedServiceJsonSamples.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/JsonSamples/LinkedServiceJsonSamples.cs index ee1306fedec73..581cb4f3b3f77 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/JsonSamples/LinkedServiceJsonSamples.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/JsonSamples/LinkedServiceJsonSamples.cs @@ -81,14 +81,27 @@ public class LinkedServiceJsonSamples : JsonSampleCollection } }"; + [JsonSample] + public const string CopyActivity_DelimitedText_AmazonS3Compatible = @"{ + ""properties"": { + ""activities"": [ + { + ""type"": ""Copy"", + ""typeProperties"": { + ""source"": { + ""type"": ""DelimitedTextSource"", + ""storeSettings"": { + ""type"": ""AmazonS3CompatibleReadSettings"", + ""recursive"": true, + ""wildcardFolderPath"": ""A*"", + ""wildcardFileName"": ""*.csv"", + ""prefix"": ""fakeprefix"", + ""fileListPath"": ""fileListPath"", + ""enablePartitionDiscovery"": true, + ""partitionRootPath"": ""partitionRootPath"", + ""deleteFilesAfterCompletion"": true, + ""modifiedDatetimeStart"": ""2019-07-02T00:00:00.000Z"", + ""modifiedDatetimeEnd"": ""2019-07-03T00:00:00.000Z"" + }, + ""formatSettings"": { + ""type"": ""DelimitedTextReadSettings"", + ""skipLineCount"": 10, + ""additionalNullValues"": [ ""\\N"", ""NULL"" ] + } + }, + ""sink"": { + ""type"": ""DelimitedTextSink"", + ""storeSettings"": { + ""type"": ""AzureDataLakeStoreWriteSettings"", + ""maxConcurrentConnections"": 3, + ""copyBehavior"": ""PreserveHierarchy"" + }, + ""formatSettings"": { + ""type"": ""DelimitedTextWriteSettings"", + ""quoteAllText"": true, + ""fileExtension"": "".csv"" + } + } + }, + ""inputs"": [ + { + ""referenceName"": ""exampleDataset"", + ""type"": ""DatasetReference"" + } + ], + ""outputs"": [ + { + ""referenceName"": ""exampleDataset"", + ""type"": ""DatasetReference"" + } + ], + ""name"": ""ExampleCopyActivity"" + } + ] + } +}"; + + [JsonSample] + public const string CopyActivity_DelimitedText_OracleCloudStorage = @"{ + ""properties"": { + ""activities"": [ + { + ""type"": ""Copy"", + ""typeProperties"": { + ""source"": { + ""type"": ""DelimitedTextSource"", + ""storeSettings"": { + ""type"": ""OracleCloudStorageReadSettings"", + ""recursive"": true, + ""wildcardFolderPath"": ""A*"", + ""wildcardFileName"": ""*.csv"", + ""prefix"": ""fakeprefix"", + ""fileListPath"": ""fileListPath"", + ""enablePartitionDiscovery"": true, + ""partitionRootPath"": ""partitionRootPath"", + ""deleteFilesAfterCompletion"": true, + ""modifiedDatetimeStart"": ""2019-07-02T00:00:00.000Z"", + ""modifiedDatetimeEnd"": ""2019-07-03T00:00:00.000Z"" + }, + ""formatSettings"": { + ""type"": ""DelimitedTextReadSettings"", + ""skipLineCount"": 10, + ""additionalNullValues"": [ ""\\N"", ""NULL"" ] + } + }, + ""sink"": { + ""type"": ""DelimitedTextSink"", + ""storeSettings"": { + ""type"": ""AzureDataLakeStoreWriteSettings"", + ""maxConcurrentConnections"": 3, + ""copyBehavior"": ""PreserveHierarchy"" + }, + ""formatSettings"": { + ""type"": ""DelimitedTextWriteSettings"", + ""quoteAllText"": true, + ""fileExtension"": "".csv"" + } + } + }, + ""inputs"": [ + { + ""referenceName"": ""exampleDataset"", + ""type"": ""DatasetReference"" + } + ], + ""outputs"": [ + { + ""referenceName"": ""exampleDataset"", + ""type"": ""DatasetReference"" + } + ], + ""name"": ""ExampleCopyActivity"" + } + ] + } +}"; + [JsonSample] public const string CopyActivity_DelimitedText_AzureFileStorage = @"{ ""properties"": { diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/TestData/PrivateEndpointConnection_Create.json b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/TestData/PrivateEndpointConnection_Create.json new file mode 100644 index 0000000000000..d1383b20dfcf6 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/TestData/PrivateEndpointConnection_Create.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345", + "resourceGroupName": "exampleResourceGroup", + "factoryName": "exampleFactoryName", + "privateEndpointConnectionName": "connection", + "api-version": "2018-06-01", + "ifMatch": null, + "privateEndpointWrapper": { + "properties": { + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Approved by admin.", + "actionsRequired": "" + } + } + } + }, + "responses": { + "200": { + "headers": {}, + "body": { + "name": "exampleFactoryName", + "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.DataFactory/factories/exampleFactoryName", + "type": "Microsoft.DataFactory/factories/privateEndpointConnections", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.DataFactory/factories/exampleFactoryName/privateEndpoints/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Approved by admin.", + "actionsRequired": "" + } + } + } + } + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/TestData/PrivateEndpointConnection_Delete.json b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/TestData/PrivateEndpointConnection_Delete.json new file mode 100644 index 0000000000000..67eac150e7bc4 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/TestData/PrivateEndpointConnection_Delete.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345", + "resourceGroupName": "exampleResourceGroup", + "factoryName": "exampleFactoryName", + "privateEndpointConnectionName": "connection", + "api-version": "2018-06-01" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/TestData/PrivateEndpointConnection_Get.json b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/TestData/PrivateEndpointConnection_Get.json new file mode 100644 index 0000000000000..79c8a974a95a9 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/TestData/PrivateEndpointConnection_Get.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345", + "resourceGroupName": "exampleResourceGroup", + "factoryName": "exampleFactoryName", + "privateEndpointConnectionName": "connection", + "api-version": "2018-06-01", + "ifNoneMatch": "1500504f-0000-0200-0000-5cbe090f0000" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "name": "exampleFactoryName", + "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.DataFactory/factories/exampleFactoryName", + "type": "Microsoft.DataFactory/factories/privateEndpointConnections", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.DataFactory/factories/exampleFactoryName/privateEndpoints/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Approved by admin.", + "actionsRequired": "" + } + } + } + } + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/TestData/PrivateEndpointConnections_ListByFactory.json b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/TestData/PrivateEndpointConnections_ListByFactory.json new file mode 100644 index 0000000000000..e7d8a151708d9 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/TestData/PrivateEndpointConnections_ListByFactory.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "subscriptionId": "12345678-1234-1234-1234-12345678abc", + "resourceGroupName": "exampleResourceGroup", + "factoryName": "exampleFactoryName", + "api-version": "2018-06-01" + }, + "responses": { + "200": { + "headers": { + "Date": "Sat, 16 Jun 2018 00:37:41 GMT", + "X-Content-Type-Options": "nosniff", + "x-ms-ratelimit-remaining-subscription-reads": "14908", + "x-ms-request-id": "9e6639e9-bece-4c0c-85de-4cadc30a73a6", + "x-ms-correlation-request-id": "9e6639e9-bece-4c0c-85de-4cadc30a73a6" + }, + "body": { + "value": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.DataFactory/factories/exampleFactoryName/privateEndpoints/myPrivateEndpoint", + "name": "factories", + "type": "Microsoft.DataFactory/factories/privateEndpointConnections", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.DataFactory/factories/exampleFactoryName/managedVirtualNetworks/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Approved by admin.", + "actionsRequired": "exampleActionsRequired" + } + } + } + ] + } + } + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/TestData/PrivateLinkResources_Get.json b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/TestData/PrivateLinkResources_Get.json new file mode 100644 index 0000000000000..878c9a564c6d1 --- /dev/null +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/TestData/PrivateLinkResources_Get.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345", + "resourceGroupName": "exampleResourceGroup", + "factoryName": "exampleFactoryName", + "api-version": "2018-06-01" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "value": [ + { + "name": "exampleFactoryName", + "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.DataFactory/factories/exampleFactoryName", + "type": "Microsoft.DataFactory/factories/privateLinkResources", + "properties": { + "groupId": "dataFactory", + "requiredMembers": [ + "dataFactory" + ], + "requiredZoneNames": [ + "privatelink.datafactory.azure.net" + ] + } + } + ] + } + } + } +} diff --git a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/UnitTests/ExamplesUnitTest.cs b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/UnitTests/ExamplesUnitTest.cs index 03430f6d9572e..a375b4e1e8352 100644 --- a/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/UnitTests/ExamplesUnitTest.cs +++ b/sdk/datafactory/Microsoft.Azure.Management.DataFactory/tests/UnitTests/ExamplesUnitTest.cs @@ -334,7 +334,7 @@ public void LinkedServices_Delete() client.LinkedServices.Delete(RGN(example), FN(example), LSN(example)); }); } - + [Fact] public void Triggers_Create() { @@ -737,6 +737,55 @@ public void ManagedPrivateEndpoint_Delete() }); } + [Fact] + public void PrivateEndpointConnection_Create() + { + RunTest("PrivateEndpointConnection_Create", (example, client, responseCode) => + { + PrivateEndpointConnectionResource resource = client.PrivateEndpointConnection.CreateOrUpdate(RGN(example), FN(example), PEC(example), PLR(example, client)); + CheckResponseBody(example, client, responseCode, resource); + }); + } + + [Fact] + public void PrivateEndpointConnection_ListByFactory() + { + RunTest("PrivateEndpointConnections_ListByFactory", (example, client, responseCode) => + { + IPage resources = client.PrivateEndPointConnections.ListByFactory(RGN(example), FN(example)); + CheckResponseBody(example, client, responseCode, (Page)resources); + }); + } + + [Fact] + public void PrivateEndpointConnection_Get() + { + RunTest("PrivateEndpointConnection_Get", (example, client, responseCode) => + { + PrivateEndpointConnectionResource resource = client.PrivateEndpointConnection.Get(RGN(example), FN(example), PEC(example)); + CheckResponseBody(example, client, responseCode, resource); + }); + } + + [Fact] + public void PrivateEndpointConnection_Delete() + { + RunTest("PrivateEndpointConnection_Delete", (example, client, responseCode) => + { + client.PrivateEndpointConnection.Delete(RGN(example), FN(example), PEC(example)); + }); + } + + [Fact] + public void PrivateLinkResources_Get() + { + RunTest("PrivateLinkResources_Get", (example, client, responseCode) => + { + PrivateLinkResourcesWrapper resource = client.PrivateLinkResources.Get(RGN(example), FN(example)); + CheckResponseBody(example, client, responseCode, resource); + }); + } + private List GetResponses(Example example) { List messages = new List(); @@ -837,7 +886,7 @@ private void CheckResponseBody(Example example, IDataFactoryManagementClient JToken actualJToken = JToken.Parse(actualJson); - Assert.True(JToken.DeepEquals(expectedJToken, actualJToken), + Assert.True(JToken.DeepEquals(expectedJToken, actualJToken), string.Format(CultureInfo.InvariantCulture, "CheckResponseBody failed for example {0} response code {1}", example.Name, responseCode)); } @@ -886,6 +935,11 @@ private string MVN(Example example) return (string)example.Parameters["managedVirtualNetworkName"]; } + private string PEC(Example example) + { + return (string)example.Parameters["privateEndpointConnectionName"]; + } + private T GetTypedObject(IDataFactoryManagementClient client, object objectRaw) { string jsonRaw = SafeJsonConvert.SerializeObject(objectRaw); @@ -948,5 +1002,10 @@ private ManagedVirtualNetworkResource MVR(Example example, IDataFactoryManagemen { return GetTypedParameter(example, client, "managedVirtualNetwork"); } + + private PrivateLinkConnectionApprovalRequestResource PLR(Example example, IDataFactoryManagementClient client) + { + return GetTypedParameter(example, client, "privateEndpointWrapper"); + } } }