// 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.
import Foundation
// ConnectorMappingAvailabilityProtocol is connector mapping property availability.
public protocol ConnectorMappingAvailabilityProtocol : Codable {
     var frequency: FrequencyTypesEnum? { get set }
     var interval: Int32 { get set }
}


// 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.
import Foundation
// ConnectorMappingCompleteOperationProtocol is the complete operation.
public protocol ConnectorMappingCompleteOperationProtocol : Codable {
     var completionOperationType: CompletionOperationTypesEnum? { get set }
     var destinationFolder: String? { get set }
}


// 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.
import Foundation
// ConnectorMappingErrorManagementProtocol is the error mangement.
public protocol ConnectorMappingErrorManagementProtocol : Codable {
     var errorManagementType: ErrorManagementTypesEnum { get set }
     var errorLimit: Int32? { get set }
}


// 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.
import Foundation
// ConnectorMappingFormatProtocol is connector mapping property format.
public protocol ConnectorMappingFormatProtocol : Codable {
     var formatType: String { get set }
     var columnDelimiter: String? { get set }
     var acceptLanguage: String? { get set }
     var quoteCharacter: String? { get set }
     var quoteEscapeCharacter: String? { get set }
     var arraySeparator: String? { get set }
}


// 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.
import Foundation
// ConnectorMappingListResultProtocol is the response of list connector mapping operation.
public protocol ConnectorMappingListResultProtocol : Codable {
     var value: [ConnectorMappingResourceFormatProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// ConnectorMappingPropertiesProtocol is the connector mapping properties.
public protocol ConnectorMappingPropertiesProtocol : Codable {
     var folderPath: String? { get set }
     var fileFilter: String? { get set }
     var hasHeader: Bool? { get set }
     var errorManagement: ConnectorMappingErrorManagementProtocol { get set }
     var format: ConnectorMappingFormatProtocol { get set }
     var availability: ConnectorMappingAvailabilityProtocol { get set }
     var structure: [ConnectorMappingStructureProtocol] { get set }
     var completeOperation: ConnectorMappingCompleteOperationProtocol { get set }
}


// 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.
import Foundation
// ConnectorMappingProtocol is the connector mapping definition.
public protocol ConnectorMappingProtocol : Codable {
     var connectorName: String? { get set }
     var connectorType: ConnectorTypesEnum? { get set }
     var created: Date? { get set }
     var lastModified: Date? { get set }
     var entityType: EntityTypesEnum { get set }
     var entityTypeName: String { get set }
     var connectorMappingName: String? { get set }
     var displayName: String? { get set }
     var description: String? { get set }
     var dataFormatId: String? { get set }
     var mappingProperties: ConnectorMappingPropertiesProtocol { get set }
     var nextRunTime: Date? { get set }
     var runId: String? { get set }
     var state: ConnectorMappingStatesEnum? { get set }
     var tenantId: String? { get set }
}


// 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.
import Foundation
// ConnectorMappingResourceFormatProtocol is the c onnector mapping resource format.
public protocol ConnectorMappingResourceFormatProtocol : ProxyResourceProtocol {
     var properties: ConnectorMappingProtocol? { get set }
}


// 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.
import Foundation
// ConnectorMappingStructureProtocol is connector mapping property structure.
public protocol ConnectorMappingStructureProtocol : Codable {
     var propertyName: String { get set }
     var columnName: String { get set }
     var customFormatSpecifier: String? { get set }
     var isEncrypted: Bool? { get set }
}


// 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.
import Foundation
// ConnectorProtocol is properties of connector.
public protocol ConnectorProtocol : Codable {
     var connectorId: Int32? { get set }
     var connectorName: String? { get set }
     var connectorType: ConnectorTypesEnum { get set }
     var displayName: String? { get set }
     var description: String? { get set }
     var connectorProperties: [String:[String: String?]] { get set }
     var created: Date? { get set }
     var lastModified: Date? { get set }
     var state: ConnectorStatesEnum? { get set }
     var tenantId: String? { get set }
     var isInternal: Bool? { get set }
}


// 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.
import Foundation
// ConnectorResourceFormatProtocol is the connector resource format.
public protocol ConnectorResourceFormatProtocol : ProxyResourceProtocol {
     var properties: ConnectorProtocol? { get set }
}


// 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.
import Foundation
// CrmConnectorEntitiesProtocol is the CRM connector entities.
public protocol CrmConnectorEntitiesProtocol : Codable {
     var logicalName: String { get set }
     var displayName: String? { get set }
     var isProfile: Bool? { get set }
}


// 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.
import Foundation
// CrmConnectorPropertiesProtocol is the CRM connector properties.
public protocol CrmConnectorPropertiesProtocol : Codable {
     var connectionString: String? { get set }
     var organizationId: String { get set }
     var organizationUrl: String { get set }
     var entities: [CrmConnectorEntitiesProtocol] { get set }
     var accessToken: String? { get set }
}


// 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.
import Foundation
// DataSourcePrecedenceProtocol is the data source precedence is a way to know the precedence of each data source.
public protocol DataSourcePrecedenceProtocol : Codable {
     var dataSource: DataSourceProtocol? { get set }
     var _precedence: Int32? { get set }
}


// 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.
import Foundation
// DataSourceProtocol is data Source is a way for us to know the source of instances. A single type can have data
// coming in from multiple places. In activities we use this to determine precedence rules.
public protocol DataSourceProtocol : Codable {
     var name: String? { get set }
     var dataSourceType: DataSourceTypeEnum? { get set }
     var status: StatusEnum? { get set }
     var id: Int32? { get set }
     var dataSourceReferenceId: String? { get set }
}


// 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.
import Foundation
// EnrichingKpiProtocol is the enriching KPI definition.
public protocol EnrichingKpiProtocol : KpiDefinitionProtocol {
}


// 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.
import Foundation
// EntityTypeDefinitionProtocol is describes an entity.
public protocol EntityTypeDefinitionProtocol : MetadataDefinitionBaseProtocol {
     var apiEntitySetName: String? { get set }
     var entityType: EntityTypesEnum? { get set }
     var fields: [PropertyDefinitionProtocol?]? { get set }
     var instancesCount: Int32? { get set }
     var lastChangedUtc: Date? { get set }
     var provisioningState: ProvisioningStatesEnum? { get set }
     var schemaItemTypeLink: String? { get set }
     var tenantId: String? { get set }
     var timestampFieldName: String? { get set }
     var typeName: String? { get set }
}


// 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.
import Foundation
// GetImageUploadUrlInputProtocol is input type for getting image upload url.
public protocol GetImageUploadUrlInputProtocol : Codable {
     var entityType: String? { get set }
     var entityTypeName: String? { get set }
     var relativePath: String? { get set }
}


// 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.
import Foundation
// HubBillingInfoFormatProtocol is hub billing info.
public protocol HubBillingInfoFormatProtocol : Codable {
     var skuName: String? { get set }
     var minUnits: Int32? { get set }
     var maxUnits: Int32? { get set }
}


// 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.
import Foundation
// HubListResultProtocol is response of list hub operation.
public protocol HubListResultProtocol : Codable {
     var value: [HubProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// HubPropertiesFormatProtocol is properties of hub.
public protocol HubPropertiesFormatProtocol : Codable {
     var apiEndpoint: String? { get set }
     var webEndpoint: String? { get set }
     var provisioningState: String? { get set }
     var tenantFeatures: Int32? { get set }
     var hubBillingInfo: HubBillingInfoFormatProtocol? { get set }
}


// 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.
import Foundation
// HubProtocol is hub resource.
public protocol HubProtocol : ResourceProtocol {
     var properties: HubPropertiesFormatProtocol? { get set }
}


// 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.
import Foundation
// ImageDefinitionProtocol is the image definition.
public protocol ImageDefinitionProtocol : Codable {
     var imageExists: Bool? { get set }
     var contentUrl: String? { get set }
     var relativePath: String? { get set }
}


// 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.
import Foundation
// InteractionListResultProtocol is the response of list interaction operation.
public protocol InteractionListResultProtocol : Codable {
     var value: [InteractionResourceFormatProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// InteractionResourceFormatProtocol is the interaction resource format.
public protocol InteractionResourceFormatProtocol : ProxyResourceProtocol {
     var properties: InteractionTypeDefinitionProtocol? { get set }
}


// 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.
import Foundation
// InteractionTypeDefinitionProtocol is the Interaction Type Definition
public protocol InteractionTypeDefinitionProtocol : EntityTypeDefinitionProtocol {
     var idPropertyNames: [String]? { get set }
     var participantProfiles: [ParticipantProtocol?]? { get set }
     var primaryParticipantProfilePropertyName: String? { get set }
     var dataSourcePrecedenceRules: [DataSourcePrecedenceProtocol?]? { get set }
     var defaultDataSource: DataSourceProtocol? { get set }
     var isActivity: Bool? { get set }
}


// 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.
import Foundation
// KpiAliasProtocol is the KPI alias.
public protocol KpiAliasProtocol : Codable {
     var aliasName: String { get set }
     var expression: String { get set }
}


// 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.
import Foundation
// KpiDefinitionProtocol is defines the KPI Threshold limits.
public protocol KpiDefinitionProtocol : Codable {
     var entityType: EntityTypesEnum { get set }
     var entityTypeName: String { get set }
     var tenantId: String? { get set }
     var kpiName: String? { get set }
     var displayName: [String:String]? { get set }
     var description: [String:String]? { get set }
     var calculationWindow: CalculationWindowTypesEnum { get set }
     var calculationWindowFieldName: String? { get set }
     var function: KpiFunctionsEnum { get set }
     var expression: String { get set }
     var unit: String? { get set }
     var filter: String? { get set }
     var groupBy: [String]? { get set }
     var groupByMetadata: [KpiGroupByMetadataProtocol?]? { get set }
     var participantProfilesMetadata: [KpiParticipantProfilesMetadataProtocol?]? { get set }
     var provisioningState: ProvisioningStatesEnum? { get set }
     var thresHolds: KpiThresholdsProtocol? { get set }
     var aliases: [KpiAliasProtocol?]? { get set }
     var extracts: [KpiExtractProtocol?]? { get set }
}


// 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.
import Foundation
// KpiExtractProtocol is the KPI extract.
public protocol KpiExtractProtocol : Codable {
     var extractName: String { get set }
     var expression: String { get set }
}


// 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.
import Foundation
// KpiGroupByMetadataProtocol is the KPI GroupBy field metadata.
public protocol KpiGroupByMetadataProtocol : Codable {
     var displayName: [String:String]? { get set }
     var fieldName: String? { get set }
     var fieldType: String? { get set }
}


// 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.
import Foundation
// KpiListResultProtocol is the response of list KPI operation.
public protocol KpiListResultProtocol : Codable {
     var value: [KpiResourceFormatProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// KpiParticipantProfilesMetadataProtocol is the KPI participant profile metadata.
public protocol KpiParticipantProfilesMetadataProtocol : Codable {
     var typeName: String { get set }
}


// 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.
import Foundation
// KpiResourceFormatProtocol is the KPI resource format.
public protocol KpiResourceFormatProtocol : ProxyResourceProtocol {
     var properties: KpiDefinitionProtocol? { get set }
}


// 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.
import Foundation
// KpiThresholdsProtocol is defines the KPI Threshold limits.
public protocol KpiThresholdsProtocol : Codable {
     var lowerLimit: Decimal { get set }
     var upperLimit: Decimal { get set }
     var increasingKpi: Bool { get set }
}


// 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.
import Foundation
// LinkDefinitionProtocol is the definition of Link.
public protocol LinkDefinitionProtocol : Codable {
     var tenantId: String? { get set }
     var linkName: String? { get set }
     var sourceEntityType: EntityTypeEnum { get set }
     var targetEntityType: EntityTypeEnum { get set }
     var sourceEntityTypeName: String { get set }
     var targetEntityTypeName: String { get set }
     var displayName: [String:String]? { get set }
     var description: [String:String]? { get set }
     var mappings: [TypePropertiesMappingProtocol?]? { get set }
     var participantPropertyReferences: [ParticipantPropertyReferenceProtocol] { get set }
     var provisioningState: ProvisioningStatesEnum? { get set }
     var referenceOnly: Bool? { get set }
     var operationType: InstanceOperationTypeEnum? { get set }
}


// 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.
import Foundation
// LinkListResultProtocol is the response of list link operation.
public protocol LinkListResultProtocol : Codable {
     var value: [LinkResourceFormatProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// LinkResourceFormatProtocol is the link resource format.
public protocol LinkResourceFormatProtocol : ProxyResourceProtocol {
     var properties: LinkDefinitionProtocol? { get set }
}


// 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.
import Foundation
// MetadataDefinitionBaseProtocol is the Metadata definition base.
public protocol MetadataDefinitionBaseProtocol : Codable {
     var attributes: [String:[String]?]? { get set }
     var description: [String:String]? { get set }
     var displayName: [String:String]? { get set }
     var localizedAttributes: [String:[String:String]?]? { get set }
     var smallImage: String? { get set }
     var mediumImage: String? { get set }
     var largeImage: String? { get set }
}


// 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.
import Foundation
// OperationDisplayProtocol is the object that represents the operation.
public protocol OperationDisplayProtocol : Codable {
     var provider: String? { get set }
     var resource: String? { get set }
     var operation: String? { get set }
}


// 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.
import Foundation
// OperationListResultProtocol is result of the request to list Customer Insights operations. It contains a list of
// operations and a URL link to get the next set of results.
public protocol OperationListResultProtocol : Codable {
     var value: [OperationProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// OperationProtocol is a Customer Insights REST API operation
public protocol OperationProtocol : Codable {
     var name: String? { get set }
     var display: OperationDisplayProtocol? { get set }
}


// 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.
import Foundation
// ParticipantProfilePropertyReferenceProtocol is the participant profile property reference.
public protocol ParticipantProfilePropertyReferenceProtocol : Codable {
     var interactionPropertyName: String { get set }
     var profilePropertyName: String { get set }
}


// 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.
import Foundation
// ParticipantPropertyReferenceProtocol is the participant property reference.
public protocol ParticipantPropertyReferenceProtocol : Codable {
     var sourcePropertyName: String { get set }
     var targetPropertyName: String { get set }
}


// 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.
import Foundation
// ParticipantProtocol is describes a profile type participating in an interaction.
public protocol ParticipantProtocol : Codable {
     var profileTypeName: String { get set }
     var participantPropertyReferences: [ParticipantPropertyReferenceProtocol] { get set }
     var participantName: String { get set }
     var displayName: [String:String]? { get set }
     var description: [String:String]? { get set }
     var role: String? { get set }
}


// 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.
import Foundation
// PredictionDistributionDefinitionDistributionsItemProtocol is the definition of a prediction distribution.
public protocol PredictionDistributionDefinitionDistributionsItemProtocol : Codable {
     var scoreThreshold: Int32? { get set }
     var positives: Int64? { get set }
     var negatives: Int64? { get set }
     var positivesAboveThreshold: Int64? { get set }
     var negativesAboveThreshold: Int64? { get set }
}


// 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.
import Foundation
// PredictionDistributionDefinitionProtocol is the definition of the prediction distribution.
public protocol PredictionDistributionDefinitionProtocol : Codable {
     var totalPositives: Int64? { get set }
     var totalNegatives: Int64? { get set }
     var distributions: [PredictionDistributionDefinitionDistributionsItemProtocol?]? { get set }
}


// 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.
import Foundation
// PredictionGradesItemProtocol is the definition of a prediction grade.
public protocol PredictionGradesItemProtocol : Codable {
     var gradeName: String? { get set }
     var minScoreThreshold: Int32? { get set }
     var maxScoreThreshold: Int32? { get set }
}


// 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.
import Foundation
// PredictionListResultProtocol is the response of list predictions operation.
public protocol PredictionListResultProtocol : Codable {
     var value: [PredictionResourceFormatProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// PredictionMappingsProtocol is definition of the link mapping of prediction.
public protocol PredictionMappingsProtocol : Codable {
     var score: String? { get set }
     var grade: String? { get set }
     var reason: String? { get set }
}


// 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.
import Foundation
// PredictionModelStatusProtocol is the prediction model status.
public protocol PredictionModelStatusProtocol : Codable {
     var tenantId: String? { get set }
     var predictionName: String? { get set }
     var predictionGuidId: String? { get set }
     var status: PredictionModelLifeCycleEnum { get set }
     var message: String? { get set }
     var trainingSetCount: Int32? { get set }
     var testSetCount: Int32? { get set }
     var validationSetCount: Int32? { get set }
     var trainingAccuracy: Int32? { get set }
     var signalsUsed: Int32? { get set }
     var modelVersion: String? { get set }
}


// 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.
import Foundation
// PredictionProtocol is the prediction definition.
public protocol PredictionProtocol : Codable {
     var description: [String:String]? { get set }
     var displayName: [String:String]? { get set }
     var involvedInteractionTypes: [String]? { get set }
     var involvedKpiTypes: [String]? { get set }
     var involvedRelationships: [String]? { get set }
     var negativeOutcomeExpression: String { get set }
     var positiveOutcomeExpression: String { get set }
     var primaryProfileType: String { get set }
     var provisioningState: ProvisioningStatesEnum? { get set }
     var predictionName: String? { get set }
     var scopeExpression: String { get set }
     var tenantId: String? { get set }
     var autoAnalyze: Bool { get set }
     var mappings: PredictionMappingsProtocol { get set }
     var scoreLabel: String { get set }
     var grades: [PredictionGradesItemProtocol?]? { get set }
     var systemGeneratedEntities: PredictionSystemGeneratedEntitiesProtocol? { get set }
}


// 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.
import Foundation
// PredictionResourceFormatProtocol is the prediction resource format.
public protocol PredictionResourceFormatProtocol : ProxyResourceProtocol {
     var properties: PredictionProtocol? { get set }
}


// 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.
import Foundation
// PredictionSystemGeneratedEntitiesProtocol is system generated entities.
public protocol PredictionSystemGeneratedEntitiesProtocol : Codable {
     var generatedInteractionTypes: [String]? { get set }
     var generatedLinks: [String]? { get set }
     var generatedKpis: [String:String]? { get set }
}


// 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.
import Foundation
// PredictionTrainingResultsProtocol is the training results of the prediction.
public protocol PredictionTrainingResultsProtocol : Codable {
     var tenantId: String? { get set }
     var scoreName: String? { get set }
     var predictionDistribution: PredictionDistributionDefinitionProtocol? { get set }
     var canonicalProfiles: [CanonicalProfileDefinitionProtocol?]? { get set }
     var primaryProfileInstanceCount: Int64? { get set }
}


// 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.
import Foundation
// ProfileEnumValidValuesFormatProtocol is valid enum values in case of an enum property.
public protocol ProfileEnumValidValuesFormatProtocol : Codable {
     var value: Int32? { get set }
     var localizedValueNames: [String:String]? { get set }
}


// 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.
import Foundation
// ProfileListResultProtocol is the response of list profile operation.
public protocol ProfileListResultProtocol : Codable {
     var value: [ProfileResourceFormatProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// ProfileResourceFormatProtocol is the profile resource format.
public protocol ProfileResourceFormatProtocol : ProxyResourceProtocol {
     var properties: ProfileTypeDefinitionProtocol? { get set }
}


// 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.
import Foundation
// ProfileTypeDefinitionProtocol is the profile type definition.
public protocol ProfileTypeDefinitionProtocol : EntityTypeDefinitionProtocol {
     var strongIds: [StrongIdProtocol?]? { get set }
}


// 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.
import Foundation
// PropertyDefinitionProtocol is property definition.
public protocol PropertyDefinitionProtocol : Codable {
     var arrayValueSeparator: String? { get set }
     var enumValidValues: [ProfileEnumValidValuesFormatProtocol?]? { get set }
     var fieldName: String { get set }
     var fieldType: String { get set }
     var isArray: Bool? { get set }
     var isEnum: Bool? { get set }
     var isFlagEnum: Bool? { get set }
     var isImage: Bool? { get set }
     var isLocalizedString: Bool? { get set }
     var isName: Bool? { get set }
     var isRequired: Bool? { get set }
     var propertyId: String? { get set }
     var schemaItemPropLink: String? { get set }
     var maxLength: Int32? { get set }
     var isAvailableInGraph: Bool? { get set }
     var dataSourcePrecedenceRules: [DataSourcePrecedenceProtocol?]? { get set }
}


// 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.
import Foundation
// ProxyResourceProtocol is common properties of proxy resource.
public protocol ProxyResourceProtocol : Codable {
     var id: String? { get set }
     var name: String? { get set }
     var type: String? { get set }
}


// 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.
import Foundation
// RelationshipDefinitionProtocol is the definition of Relationship.
public protocol RelationshipDefinitionProtocol : Codable {
     var cardinality: CardinalityTypesEnum? { get set }
     var displayName: [String:String]? { get set }
     var description: [String:String]? { get set }
     var expiryDateTimeUtc: Date? { get set }
     var fields: [PropertyDefinitionProtocol?]? { get set }
     var lookupMappings: [RelationshipTypeMappingProtocol?]? { get set }
     var profileType: String { get set }
     var provisioningState: ProvisioningStatesEnum? { get set }
     var relationshipName: String? { get set }
     var relatedProfileType: String { get set }
     var relationshipGuidId: String? { get set }
     var tenantId: String? { get set }
}


// 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.
import Foundation
// RelationshipLinkDefinitionProtocol is the definition of relationship link.
public protocol RelationshipLinkDefinitionProtocol : Codable {
     var displayName: [String:String]? { get set }
     var description: [String:String]? { get set }
     var interactionType: String { get set }
     var linkName: String? { get set }
     var mappings: [RelationshipLinkFieldMappingProtocol?]? { get set }
     var profilePropertyReferences: [ParticipantProfilePropertyReferenceProtocol] { get set }
     var provisioningState: ProvisioningStatesEnum? { get set }
     var relatedProfilePropertyReferences: [ParticipantProfilePropertyReferenceProtocol] { get set }
     var relationshipName: String { get set }
     var relationshipGuidId: String? { get set }
     var tenantId: String? { get set }
}


// 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.
import Foundation
// RelationshipLinkFieldMappingProtocol is the fields mapping for Relationships.
public protocol RelationshipLinkFieldMappingProtocol : Codable {
     var interactionFieldName: String { get set }
     var linkType: LinkTypesEnum? { get set }
     var relationshipFieldName: String { get set }
}


// 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.
import Foundation
// RelationshipLinkListResultProtocol is the response of list relationship link operation.
public protocol RelationshipLinkListResultProtocol : Codable {
     var value: [RelationshipLinkResourceFormatProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// RelationshipLinkResourceFormatProtocol is the relationship link resource format.
public protocol RelationshipLinkResourceFormatProtocol : ProxyResourceProtocol {
     var properties: RelationshipLinkDefinitionProtocol? { get set }
}


// 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.
import Foundation
// RelationshipListResultProtocol is the response of list relationship operation.
public protocol RelationshipListResultProtocol : Codable {
     var value: [RelationshipResourceFormatProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// RelationshipResourceFormatProtocol is the relationship resource format.
public protocol RelationshipResourceFormatProtocol : ProxyResourceProtocol {
     var properties: RelationshipDefinitionProtocol? { get set }
}


// 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.
import Foundation
// RelationshipsLookupProtocol is the definition of suggested relationship for the type.
public protocol RelationshipsLookupProtocol : Codable {
     var profileName: String? { get set }
     var profilePropertyReferences: [ParticipantProfilePropertyReferenceProtocol?]? { get set }
     var relatedProfileName: String? { get set }
     var relatedProfilePropertyReferences: [ParticipantProfilePropertyReferenceProtocol?]? { get set }
     var existingRelationshipName: String? { get set }
}


// 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.
import Foundation
// RelationshipTypeFieldMappingProtocol is map a field of profile to its corresponding StrongId in Related Profile.
public protocol RelationshipTypeFieldMappingProtocol : Codable {
     var profileFieldName: String { get set }
     var relatedProfileKeyProperty: String { get set }
}


// 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.
import Foundation
// RelationshipTypeMappingProtocol is maps fields in Profile to their corresponding StrongIds in Related Profile.
public protocol RelationshipTypeMappingProtocol : Codable {
     var fieldMappings: [RelationshipTypeFieldMappingProtocol] { get set }
}


// 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.
import Foundation
// ResourceProtocol is common properties of Azure resource.
public protocol ResourceProtocol : Codable {
     var id: String? { get set }
     var name: String? { get set }
     var type: String? { get set }
     var location: String? { get set }
     var tags: [String:String]? { get set }
}


// 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.
import Foundation
// ResourceSetDescriptionProtocol is the resource set description.
public protocol ResourceSetDescriptionProtocol : Codable {
     var elements: [String]? { get set }
     var exceptions: [String]? { get set }
}


// 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.
import Foundation
// RoleAssignmentListResultProtocol is the response of list role assignment operation.
public protocol RoleAssignmentListResultProtocol : Codable {
     var value: [RoleAssignmentResourceFormatProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// RoleAssignmentProtocol is the Role Assignment definition.
public protocol RoleAssignmentProtocol : Codable {
     var tenantId: String? { get set }
     var assignmentName: String? { get set }
     var displayName: [String:String]? { get set }
     var description: [String:String]? { get set }
     var provisioningState: ProvisioningStatesEnum? { get set }
     var role: RoleTypesEnum { get set }
     var principals: [AssignmentPrincipalProtocol] { get set }
     var profiles: ResourceSetDescriptionProtocol? { get set }
     var interactions: ResourceSetDescriptionProtocol? { get set }
     var links: ResourceSetDescriptionProtocol? { get set }
     var kpis: ResourceSetDescriptionProtocol? { get set }
     var sasPolicies: ResourceSetDescriptionProtocol? { get set }
     var connectors: ResourceSetDescriptionProtocol? { get set }
     var views: ResourceSetDescriptionProtocol? { get set }
     var relationshipLinks: ResourceSetDescriptionProtocol? { get set }
     var relationships: ResourceSetDescriptionProtocol? { get set }
     var widgetTypes: ResourceSetDescriptionProtocol? { get set }
     var roleAssignments: ResourceSetDescriptionProtocol? { get set }
     var conflationPolicies: ResourceSetDescriptionProtocol? { get set }
     var segments: ResourceSetDescriptionProtocol? { get set }
}


// 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.
import Foundation
// RoleAssignmentResourceFormatProtocol is the Role Assignment resource format.
public protocol RoleAssignmentResourceFormatProtocol : ProxyResourceProtocol {
     var properties: RoleAssignmentProtocol? { get set }
}


// 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.
import Foundation
// RoleListResultProtocol is the response of list role assignment operation.
public protocol RoleListResultProtocol : Codable {
     var value: [RoleResourceFormatProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// RoleProtocol is the Role definition.
public protocol RoleProtocol : Codable {
     var roleName: String? { get set }
     var description: String? { get set }
}


// 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.
import Foundation
// RoleResourceFormatProtocol is the role resource format.
public protocol RoleResourceFormatProtocol : ProxyResourceProtocol {
     var properties: RoleProtocol? { get set }
}


// 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.
import Foundation
// SalesforceConnectorPropertiesProtocol is the Salesforce connector properties.
public protocol SalesforceConnectorPropertiesProtocol : Codable {
     var usersetting: SalesforceDiscoverSettingProtocol { get set }
     var salesforcetables: [SalesforceTableProtocol] { get set }
}


// 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.
import Foundation
// SalesforceDiscoverSettingProtocol is salesforce discover setting.
public protocol SalesforceDiscoverSettingProtocol : Codable {
     var salesforceConnectionStringSecretUrl: String { get set }
}


// 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.
import Foundation
// SalesforceTableProtocol is salesforce table.
public protocol SalesforceTableProtocol : Codable {
     var isProfile: String? { get set }
     var tableCategory: String { get set }
     var tableName: String { get set }
     var tableRemarks: String? { get set }
     var tableSchema: String { get set }
}


// 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.
import Foundation
// StrongIdProtocol is property/Properties which represent a unique ID.
public protocol StrongIdProtocol : Codable {
     var keyPropertyNames: [String] { get set }
     var strongIdName: String { get set }
     var displayName: [String:String]? { get set }
     var description: [String:String]? { get set }
}


// 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.
import Foundation
// SuggestRelationshipLinksResponseProtocol is the response of suggest relationship links operation.
public protocol SuggestRelationshipLinksResponseProtocol : Codable {
     var interactionName: String? { get set }
     var suggestedRelationships: [RelationshipsLookupProtocol?]? { get set }
}


// 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.
import Foundation
// TypePropertiesMappingProtocol is metadata for a Link's property mapping.
public protocol TypePropertiesMappingProtocol : Codable {
     var sourcePropertyName: String { get set }
     var targetPropertyName: String { get set }
     var linkType: LinkTypesEnum? { get set }
}


// 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.
import Foundation
// ViewListResultProtocol is the response of list view operation.
public protocol ViewListResultProtocol : Codable {
     var value: [ViewResourceFormatProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// ViewProtocol is the view in Customer 360 web application.
public protocol ViewProtocol : Codable {
     var viewName: String? { get set }
     var userId: String? { get set }
     var tenantId: String? { get set }
     var displayName: [String:String]? { get set }
     var definition: String { get set }
     var changed: Date? { get set }
     var created: Date? { get set }
}


// 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.
import Foundation
// ViewResourceFormatProtocol is the view resource format.
public protocol ViewResourceFormatProtocol : ProxyResourceProtocol {
     var properties: ViewProtocol? { get set }
}


// 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.
import Foundation
// WidgetTypeListResultProtocol is the response of list widget type operation.
public protocol WidgetTypeListResultProtocol : Codable {
     var value: [WidgetTypeResourceFormatProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// WidgetTypeProtocol is definition of WidgetType.
public protocol WidgetTypeProtocol : Codable {
     var widgetTypeName: String? { get set }
     var definition: String { get set }
     var description: String? { get set }
     var displayName: [String:String]? { get set }
     var imageUrl: String? { get set }
     var tenantId: String? { get set }
     var widgetVersion: String? { get set }
     var changed: Date? { get set }
     var created: Date? { get set }
}


// 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.
import Foundation
// WidgetTypeResourceFormatProtocol is the WidgetTypeResourceFormat
public protocol WidgetTypeResourceFormatProtocol : ProxyResourceProtocol {
     var properties: WidgetTypeProtocol? { get set }
}


// swift-tools-version:4.0
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
    name: "datalakeanalyticsaccount",
    products: [
        // Products define the executables and libraries produced by a package, and make them visible to other packages.
        .library(
            name: "datalakeanalyticsaccount",
            targets: ["datalakeanalyticsaccount"]),
    ],
    dependencies: [
        // Dependencies declare other packages that this package depends on.
        .package(url: "https://github.com/Alamofire/Alamofire.git", from: "4.0.10"),
        .package(url: "https://github.com/ReactiveX/RxSwift.git", from: "3.4.2"),
        .package(url: "https://github.com/SwiftyJSON/SwiftyJSON.git", from: "3.1.4"),
        .package(url: "git@github.com:alvadb/autorest-clientruntime-for-swift.git", .branch("master"))
    ],
    targets: [
        // Targets are the basic building blocks of a package. A target can define a module or a test suite.
        // Targets can depend on other targets in this package, and on products in packages which this package depends on.
        .target(
            name: "datalakeanalyticsaccount",
            dependencies: ["Alamofire", "RxSwift", "SwiftyJSON", "azureSwiftRuntime"])
    ]
)


// 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.

// Accounts is the creates an Azure Data Lake Analytics account management client.
import Foundation
import azureSwiftRuntime
extension Commands {
public struct Accounts {
    public static func CheckNameAvailability(subscriptionId: String, location: String, parameters: CheckNameAvailabilityParametersProtocol) -> AccountsCheckNameAvailability {
        return CheckNameAvailabilityCommand(subscriptionId: subscriptionId, location: location, parameters: parameters)
    }
    public static func Create(subscriptionId: String, resourceGroupName: String, accountName: String, parameters: CreateDataLakeAnalyticsAccountParametersProtocol) -> AccountsCreate {
        return CreateCommand(subscriptionId: subscriptionId, resourceGroupName: resourceGroupName, accountName: accountName, parameters: parameters)
    }
    public static func Delete(subscriptionId: String, resourceGroupName: String, accountName: String) -> AccountsDelete {
        return DeleteCommand(subscriptionId: subscriptionId, resourceGroupName: resourceGroupName, accountName: accountName)
    }
    public static func Get(subscriptionId: String, resourceGroupName: String, accountName: String) -> AccountsGet {
        return GetCommand(subscriptionId: subscriptionId, resourceGroupName: resourceGroupName, accountName: accountName)
    }
    public static func List(subscriptionId: String) -> AccountsList {
        return ListCommand(subscriptionId: subscriptionId)
    }
    public static func ListByResourceGroup(subscriptionId: String, resourceGroupName: String) -> AccountsListByResourceGroup {
        return ListByResourceGroupCommand(subscriptionId: subscriptionId, resourceGroupName: resourceGroupName)
    }
    public static func Update(subscriptionId: String, resourceGroupName: String, accountName: String) -> AccountsUpdate {
        return UpdateCommand(subscriptionId: subscriptionId, resourceGroupName: resourceGroupName, accountName: accountName)
    }
}
}


import Foundation
import azureSwiftRuntime
public protocol AccountsCheckNameAvailability  {
    var headerParameters: [String: String] { get set }
    var subscriptionId : String { get set }
    var location : String { get set }
    var apiVersion : String { get set }
    var parameters :  CheckNameAvailabilityParametersProtocol?  { get set }
    func execute(client: RuntimeClient,
    completionHandler: @escaping (NameAvailabilityInformationProtocol?, Error?) -> Void) -> Void ;
}

extension Commands.Accounts {
// CheckNameAvailability checks whether the specified account name is available or taken.
    internal class CheckNameAvailabilityCommand : BaseCommand, AccountsCheckNameAvailability {
        public var subscriptionId : String
        public var location : String
        public var apiVersion = "2016-11-01"
    public var parameters :  CheckNameAvailabilityParametersProtocol?

        public init(subscriptionId: String, location: String, parameters: CheckNameAvailabilityParametersProtocol) {
            self.subscriptionId = subscriptionId
            self.location = location
            self.parameters = parameters
            super.init()
            self.method = "Post"
            self.isLongRunningOperation = false
            self.path = "/subscriptions/{subscriptionId}/providers/Microsoft.DataLakeAnalytics/locations/{location}/checkNameAvailability"
            self.headerParameters = ["Content-Type":"application/json; charset=utf-8"]
        }

        public override func preCall()  {
            self.pathParameters["{subscriptionId}"] = String(describing: self.subscriptionId)
            self.pathParameters["{location}"] = String(describing: self.location)
            self.queryParameters["api-version"] = String(describing: self.apiVersion)
            self.body = parameters

        }
        public override func encodeBody() throws -> Data? {
            let contentType = "application/json"
            if let mimeType = MimeType.getType(forStr: contentType) {
                let encoder = try CoderFactory.encoder(for: mimeType)
                let encodedValue = try encoder.encode(parameters as? CheckNameAvailabilityParametersData)
                return encodedValue
            }
            throw DecodeError.unknownMimeType
        }

        public override func returnFunc(data: Data) throws -> Decodable? {
            let contentType = "application/json"
            if let mimeType = MimeType.getType(forStr: contentType) {
                let decoder = try CoderFactory.decoder(for: mimeType)
                let result = try decoder.decode(NameAvailabilityInformationData?.self, from: data)
                return result;
            }
            throw DecodeError.unknownMimeType
        }
        public func execute(client: RuntimeClient,
            completionHandler: @escaping (NameAvailabilityInformationProtocol?, Error?) -> Void) -> Void {
            client.executeAsync(command: self) {
                (result: NameAvailabilityInformationData?, error: Error?) in
                completionHandler(result, error)
            }
        }
    }
}


import Foundation
import azureSwiftRuntime
public protocol AccountsCreate  {
    var headerParameters: [String: String] { get set }
    var subscriptionId : String { get set }
    var resourceGroupName : String { get set }
    var accountName : String { get set }
    var apiVersion : String { get set }
    var parameters :  CreateDataLakeAnalyticsAccountParametersProtocol?  { get set }
    func execute(client: RuntimeClient,
    completionHandler: @escaping (DataLakeAnalyticsAccountProtocol?, Error?) -> Void) -> Void ;
}

extension Commands.Accounts {
// Create creates the specified Data Lake Analytics account. This supplies the user with computation services for Data
// Lake Analytics workloads. This method may poll for completion. Polling can be canceled by passing the cancel channel
// argument. The channel will be used to cancel polling and any outstanding HTTP requests.
    internal class CreateCommand : BaseCommand, AccountsCreate {
        public var subscriptionId : String
        public var resourceGroupName : String
        public var accountName : String
        public var apiVersion = "2016-11-01"
    public var parameters :  CreateDataLakeAnalyticsAccountParametersProtocol?

        public init(subscriptionId: String, resourceGroupName: String, accountName: String, parameters: CreateDataLakeAnalyticsAccountParametersProtocol) {
            self.subscriptionId = subscriptionId
            self.resourceGroupName = resourceGroupName
            self.accountName = accountName
            self.parameters = parameters
            super.init()
            self.method = "Put"
            self.isLongRunningOperation = true
            self.path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{accountName}"
            self.headerParameters = ["Content-Type":"application/json; charset=utf-8"]
        }

        public override func preCall()  {
            self.pathParameters["{subscriptionId}"] = String(describing: self.subscriptionId)
            self.pathParameters["{resourceGroupName}"] = String(describing: self.resourceGroupName)
            self.pathParameters["{accountName}"] = String(describing: self.accountName)
            self.queryParameters["api-version"] = String(describing: self.apiVersion)
            self.body = parameters

        }
        public override func encodeBody() throws -> Data? {
            let contentType = "application/json"
            if let mimeType = MimeType.getType(forStr: contentType) {
                let encoder = try CoderFactory.encoder(for: mimeType)
                let encodedValue = try encoder.encode(parameters as? CreateDataLakeAnalyticsAccountParametersData)
                return encodedValue
            }
            throw DecodeError.unknownMimeType
        }

        public override func returnFunc(data: Data) throws -> Decodable? {
            let contentType = "application/json"
            if let mimeType = MimeType.getType(forStr: contentType) {
                let decoder = try CoderFactory.decoder(for: mimeType)
                let result = try decoder.decode(DataLakeAnalyticsAccountData?.self, from: data)
                return result;
            }
            throw DecodeError.unknownMimeType
        }
        public func execute(client: RuntimeClient,
            completionHandler: @escaping (DataLakeAnalyticsAccountProtocol?, Error?) -> Void) -> Void {
            client.executeAsyncLRO(command: self) {
                (result: DataLakeAnalyticsAccountData?, error: Error?) in
                completionHandler(result, error)
            }
        }
    }
}


import Foundation
import azureSwiftRuntime
public protocol AccountsDelete  {
    var headerParameters: [String: String] { get set }
    var subscriptionId : String { get set }
    var resourceGroupName : String { get set }
    var accountName : String { get set }
    var apiVersion : String { get set }
    func execute(client: RuntimeClient,
    completionHandler: @escaping (Error?) -> Void) -> Void;
}

extension Commands.Accounts {
// Delete begins the delete process for the Data Lake Analytics account object specified by the account name. This
// method may poll for completion. Polling can be canceled by passing the cancel channel argument. The channel will be
// used to cancel polling and any outstanding HTTP requests.
    internal class DeleteCommand : BaseCommand, AccountsDelete {
        public var subscriptionId : String
        public var resourceGroupName : String
        public var accountName : String
        public var apiVersion = "2016-11-01"

        public init(subscriptionId: String, resourceGroupName: String, accountName: String) {
            self.subscriptionId = subscriptionId
            self.resourceGroupName = resourceGroupName
            self.accountName = accountName
            super.init()
            self.method = "Delete"
            self.isLongRunningOperation = true
            self.path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{accountName}"
            self.headerParameters = ["Content-Type":"application/json; charset=utf-8"]
        }

        public override func preCall()  {
            self.pathParameters["{subscriptionId}"] = String(describing: self.subscriptionId)
            self.pathParameters["{resourceGroupName}"] = String(describing: self.resourceGroupName)
            self.pathParameters["{accountName}"] = String(describing: self.accountName)
            self.queryParameters["api-version"] = String(describing: self.apiVersion)

        }

        public func execute(client: RuntimeClient,
            completionHandler: @escaping (Error?) -> Void) -> Void {
            client.executeAsyncLRO(command: self) {
                (error) in
                completionHandler(error)
            }
        }
    }
}


import Foundation
import azureSwiftRuntime
public protocol AccountsGet  {
    var headerParameters: [String: String] { get set }
    var subscriptionId : String { get set }
    var resourceGroupName : String { get set }
    var accountName : String { get set }
    var apiVersion : String { get set }
    func execute(client: RuntimeClient,
    completionHandler: @escaping (DataLakeAnalyticsAccountProtocol?, Error?) -> Void) -> Void ;
}

extension Commands.Accounts {
// Get gets details of the specified Data Lake Analytics account.
    internal class GetCommand : BaseCommand, AccountsGet {
        public var subscriptionId : String
        public var resourceGroupName : String
        public var accountName : String
        public var apiVersion = "2016-11-01"

        public init(subscriptionId: String, resourceGroupName: String, accountName: String) {
            self.subscriptionId = subscriptionId
            self.resourceGroupName = resourceGroupName
            self.accountName = accountName
            super.init()
            self.method = "Get"
            self.isLongRunningOperation = false
            self.path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{accountName}"
            self.headerParameters = ["Content-Type":"application/json; charset=utf-8"]
        }

        public override func preCall()  {
            self.pathParameters["{subscriptionId}"] = String(describing: self.subscriptionId)
            self.pathParameters["{resourceGroupName}"] = String(describing: self.resourceGroupName)
            self.pathParameters["{accountName}"] = String(describing: self.accountName)
            self.queryParameters["api-version"] = String(describing: self.apiVersion)

        }

        public override func returnFunc(data: Data) throws -> Decodable? {
            let contentType = "application/json"
            if let mimeType = MimeType.getType(forStr: contentType) {
                let decoder = try CoderFactory.decoder(for: mimeType)
                let result = try decoder.decode(DataLakeAnalyticsAccountData?.self, from: data)
                return result;
            }
            throw DecodeError.unknownMimeType
        }
        public func execute(client: RuntimeClient,
            completionHandler: @escaping (DataLakeAnalyticsAccountProtocol?, Error?) -> Void) -> Void {
            client.executeAsync(command: self) {
                (result: DataLakeAnalyticsAccountData?, error: Error?) in
                completionHandler(result, error)
            }
        }
    }
}


import Foundation
import azureSwiftRuntime
public protocol AccountsList  {
    var nextLink: String? { get }
    var hasAdditionalPages : Bool { get }
    var headerParameters: [String: String] { get set }
    var subscriptionId : String { get set }
    var filter : String? { get set }
    var top : Int32? { get set }
    var skip : Int32? { get set }
    var select : String? { get set }
    var orderby : String? { get set }
    var count : Bool? { get set }
    var apiVersion : String { get set }
    func execute(client: RuntimeClient,
    completionHandler: @escaping (DataLakeAnalyticsAccountListResultProtocol?, Error?) -> Void) -> Void ;
}

extension Commands.Accounts {
// List gets the first page of Data Lake Analytics accounts, if any, within the current subscription. This includes a
// link to the next page, if any.
    internal class ListCommand : BaseCommand, AccountsList {
        var nextLink: String?
        public var hasAdditionalPages : Bool {
        get {
            return nextLink != nil
        }
    }
        public var subscriptionId : String
        public var filter : String?
        public var top : Int32?
        public var skip : Int32?
        public var select : String?
        public var orderby : String?
        public var count : Bool?
        public var apiVersion = "2016-11-01"

        public init(subscriptionId: String) {
            self.subscriptionId = subscriptionId
            super.init()
            self.method = "Get"
            self.isLongRunningOperation = false
            self.path = "/subscriptions/{subscriptionId}/providers/Microsoft.DataLakeAnalytics/accounts"
            self.headerParameters = ["Content-Type":"application/json; charset=utf-8"]
        }

        public override func preCall()  {
            self.pathParameters["{subscriptionId}"] = String(describing: self.subscriptionId)
            if self.filter != nil { queryParameters["$filter"] = String(describing: self.filter!) }
            if self.top != nil { queryParameters["$top"] = String(describing: self.top!) }
            if self.skip != nil { queryParameters["$skip"] = String(describing: self.skip!) }
            if self.select != nil { queryParameters["$select"] = String(describing: self.select!) }
            if self.orderby != nil { queryParameters["$orderby"] = String(describing: self.orderby!) }
            if self.count != nil { queryParameters["$count"] = String(describing: self.count!) }
            self.queryParameters["api-version"] = String(describing: self.apiVersion)

        }

        public override func returnFunc(data: Data) throws -> Decodable? {
            let contentType = "application/json"
            if let mimeType = MimeType.getType(forStr: contentType) {
                let decoder = try CoderFactory.decoder(for: mimeType)
                if var pageDecoder = decoder as? PageDecoder {
                    pageDecoder.isPagedData = true
                    pageDecoder.nextLinkName = "NextLink"
                }
                let result = try decoder.decode(DataLakeAnalyticsAccountListResultData?.self, from: data)
                if var pageDecoder = decoder as? PageDecoder {
                    self.nextLink = pageDecoder.nextLink
                }
                return result;
            }
            throw DecodeError.unknownMimeType
        }
        public func execute(client: RuntimeClient,
            completionHandler: @escaping (DataLakeAnalyticsAccountListResultProtocol?, Error?) -> Void) -> Void {
            if self.nextLink != nil {
                self.path = nextLink!
                self.nextLink = nil;
                self.pathType = .absolute
            }
            client.executeAsync(command: self) {
                (result: DataLakeAnalyticsAccountListResultData?, error: Error?) in
                completionHandler(result, error)
            }
        }
    }
}


import Foundation
import azureSwiftRuntime
public protocol AccountsListByResourceGroup  {
    var nextLink: String? { get }
    var hasAdditionalPages : Bool { get }
    var headerParameters: [String: String] { get set }
    var subscriptionId : String { get set }
    var resourceGroupName : String { get set }
    var filter : String? { get set }
    var top : Int32? { get set }
    var skip : Int32? { get set }
    var select : String? { get set }
    var orderby : String? { get set }
    var count : Bool? { get set }
    var apiVersion : String { get set }
    func execute(client: RuntimeClient,
    completionHandler: @escaping (DataLakeAnalyticsAccountListResultProtocol?, Error?) -> Void) -> Void ;
}

extension Commands.Accounts {
// ListByResourceGroup gets the first page of Data Lake Analytics accounts, if any, within a specific resource group.
// This includes a link to the next page, if any.
    internal class ListByResourceGroupCommand : BaseCommand, AccountsListByResourceGroup {
        var nextLink: String?
        public var hasAdditionalPages : Bool {
        get {
            return nextLink != nil
        }
    }
        public var subscriptionId : String
        public var resourceGroupName : String
        public var filter : String?
        public var top : Int32?
        public var skip : Int32?
        public var select : String?
        public var orderby : String?
        public var count : Bool?
        public var apiVersion = "2016-11-01"

        public init(subscriptionId: String, resourceGroupName: String) {
            self.subscriptionId = subscriptionId
            self.resourceGroupName = resourceGroupName
            super.init()
            self.method = "Get"
            self.isLongRunningOperation = false
            self.path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts"
            self.headerParameters = ["Content-Type":"application/json; charset=utf-8"]
        }

        public override func preCall()  {
            self.pathParameters["{subscriptionId}"] = String(describing: self.subscriptionId)
            self.pathParameters["{resourceGroupName}"] = String(describing: self.resourceGroupName)
            if self.filter != nil { queryParameters["$filter"] = String(describing: self.filter!) }
            if self.top != nil { queryParameters["$top"] = String(describing: self.top!) }
            if self.skip != nil { queryParameters["$skip"] = String(describing: self.skip!) }
            if self.select != nil { queryParameters["$select"] = String(describing: self.select!) }
            if self.orderby != nil { queryParameters["$orderby"] = String(describing: self.orderby!) }
            if self.count != nil { queryParameters["$count"] = String(describing: self.count!) }
            self.queryParameters["api-version"] = String(describing: self.apiVersion)

        }

        public override func returnFunc(data: Data) throws -> Decodable? {
            let contentType = "application/json"
            if let mimeType = MimeType.getType(forStr: contentType) {
                let decoder = try CoderFactory.decoder(for: mimeType)
                if var pageDecoder = decoder as? PageDecoder {
                    pageDecoder.isPagedData = true
                    pageDecoder.nextLinkName = "NextLink"
                }
                let result = try decoder.decode(DataLakeAnalyticsAccountListResultData?.self, from: data)
                if var pageDecoder = decoder as? PageDecoder {
                    self.nextLink = pageDecoder.nextLink
                }
                return result;
            }
            throw DecodeError.unknownMimeType
        }
        public func execute(client: RuntimeClient,
            completionHandler: @escaping (DataLakeAnalyticsAccountListResultProtocol?, Error?) -> Void) -> Void {
            if self.nextLink != nil {
                self.path = nextLink!
                self.nextLink = nil;
                self.pathType = .absolute
            }
            client.executeAsync(command: self) {
                (result: DataLakeAnalyticsAccountListResultData?, error: Error?) in
                completionHandler(result, error)
            }
        }
    }
}


import Foundation
import azureSwiftRuntime
public protocol AccountsUpdate  {
    var headerParameters: [String: String] { get set }
    var subscriptionId : String { get set }
    var resourceGroupName : String { get set }
    var accountName : String { get set }
    var apiVersion : String { get set }
    var parameters :  UpdateDataLakeAnalyticsAccountParametersProtocol?  { get set }
    func execute(client: RuntimeClient,
    completionHandler: @escaping (DataLakeAnalyticsAccountProtocol?, Error?) -> Void) -> Void ;
}

extension Commands.Accounts {
// Update updates the Data Lake Analytics account object specified by the accountName with the contents of the account
// object. This method may poll for completion. Polling can be canceled by passing the cancel channel argument. The
// channel will be used to cancel polling and any outstanding HTTP requests.
    internal class UpdateCommand : BaseCommand, AccountsUpdate {
        public var subscriptionId : String
        public var resourceGroupName : String
        public var accountName : String
        public var apiVersion = "2016-11-01"
    public var parameters :  UpdateDataLakeAnalyticsAccountParametersProtocol?

        public init(subscriptionId: String, resourceGroupName: String, accountName: String) {
            self.subscriptionId = subscriptionId
            self.resourceGroupName = resourceGroupName
            self.accountName = accountName
            super.init()
            self.method = "Patch"
            self.isLongRunningOperation = true
            self.path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{accountName}"
            self.headerParameters = ["Content-Type":"application/json; charset=utf-8"]
        }

        public override func preCall()  {
            self.pathParameters["{subscriptionId}"] = String(describing: self.subscriptionId)
            self.pathParameters["{resourceGroupName}"] = String(describing: self.resourceGroupName)
            self.pathParameters["{accountName}"] = String(describing: self.accountName)
            self.queryParameters["api-version"] = String(describing: self.apiVersion)
            self.body = parameters

        }
        public override func encodeBody() throws -> Data? {
            let contentType = "application/json"
            if let mimeType = MimeType.getType(forStr: contentType) {
                let encoder = try CoderFactory.encoder(for: mimeType)
                let encodedValue = try encoder.encode(parameters as? UpdateDataLakeAnalyticsAccountParametersData?)
                return encodedValue
            }
            throw DecodeError.unknownMimeType
        }

        public override func returnFunc(data: Data) throws -> Decodable? {
            let contentType = "application/json"
            if let mimeType = MimeType.getType(forStr: contentType) {
                let decoder = try CoderFactory.decoder(for: mimeType)
                let result = try decoder.decode(DataLakeAnalyticsAccountData?.self, from: data)
                return result;
            }
            throw DecodeError.unknownMimeType
        }
        public func execute(client: RuntimeClient,
            completionHandler: @escaping (DataLakeAnalyticsAccountProtocol?, Error?) -> Void) -> Void {
            client.executeAsyncLRO(command: self) {
                (result: DataLakeAnalyticsAccountData?, error: Error?) in
                completionHandler(result, error)
            }
        }
    }
}


// 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.

// ComputePolicies is the creates an Azure Data Lake Analytics account management client.
import Foundation
import azureSwiftRuntime
extension Commands {
public struct ComputePolicies {
    public static func CreateOrUpdate(subscriptionId: String, resourceGroupName: String, accountName: String, computePolicyName: String, parameters: CreateOrUpdateComputePolicyParametersProtocol) -> ComputePoliciesCreateOrUpdate {
        return CreateOrUpdateCommand(subscriptionId: subscriptionId, resourceGroupName: resourceGroupName, accountName: accountName, computePolicyName: computePolicyName, parameters: parameters)
    }
    public static func Delete(subscriptionId: String, resourceGroupName: String, accountName: String, computePolicyName: String) -> ComputePoliciesDelete {
        return DeleteCommand(subscriptionId: subscriptionId, resourceGroupName: resourceGroupName, accountName: accountName, computePolicyName: computePolicyName)
    }
    public static func Get(subscriptionId: String, resourceGroupName: String, accountName: String, computePolicyName: String) -> ComputePoliciesGet {
        return GetCommand(subscriptionId: subscriptionId, resourceGroupName: resourceGroupName, accountName: accountName, computePolicyName: computePolicyName)
    }
    public static func ListByAccount(subscriptionId: String, resourceGroupName: String, accountName: String) -> ComputePoliciesListByAccount {
        return ListByAccountCommand(subscriptionId: subscriptionId, resourceGroupName: resourceGroupName, accountName: accountName)
    }
    public static func Update(subscriptionId: String, resourceGroupName: String, accountName: String, computePolicyName: String) -> ComputePoliciesUpdate {
        return UpdateCommand(subscriptionId: subscriptionId, resourceGroupName: resourceGroupName, accountName: accountName, computePolicyName: computePolicyName)
    }
}
}


import Foundation
import azureSwiftRuntime
public protocol ComputePoliciesCreateOrUpdate  {
    var headerParameters: [String: String] { get set }
    var subscriptionId : String { get set }
    var resourceGroupName : String { get set }
    var accountName : String { get set }
    var computePolicyName : String { get set }
    var apiVersion : String { get set }
    var parameters :  CreateOrUpdateComputePolicyParametersProtocol?  { get set }
    func execute(client: RuntimeClient,
    completionHandler: @escaping (ComputePolicyProtocol?, Error?) -> Void) -> Void ;
}

extension Commands.ComputePolicies {
// CreateOrUpdate creates or updates the specified compute policy. During update, the compute policy with the specified
// name will be replaced with this new compute policy. An account supports, at most, 50 policies
    internal class CreateOrUpdateCommand : BaseCommand, ComputePoliciesCreateOrUpdate {
        public var subscriptionId : String
        public var resourceGroupName : String
        public var accountName : String
        public var computePolicyName : String
        public var apiVersion = "2016-11-01"
    public var parameters :  CreateOrUpdateComputePolicyParametersProtocol?

        public init(subscriptionId: String, resourceGroupName: String, accountName: String, computePolicyName: String, parameters: CreateOrUpdateComputePolicyParametersProtocol) {
            self.subscriptionId = subscriptionId
            self.resourceGroupName = resourceGroupName
            self.accountName = accountName
            self.computePolicyName = computePolicyName
            self.parameters = parameters
            super.init()
            self.method = "Put"
            self.isLongRunningOperation = false
            self.path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{accountName}/computePolicies/{computePolicyName}"
            self.headerParameters = ["Content-Type":"application/json; charset=utf-8"]
        }

        public override func preCall()  {
            self.pathParameters["{subscriptionId}"] = String(describing: self.subscriptionId)
            self.pathParameters["{resourceGroupName}"] = String(describing: self.resourceGroupName)
            self.pathParameters["{accountName}"] = String(describing: self.accountName)
            self.pathParameters["{computePolicyName}"] = String(describing: self.computePolicyName)
            self.queryParameters["api-version"] = String(describing: self.apiVersion)
            self.body = parameters

        }
        public override func encodeBody() throws -> Data? {
            let contentType = "application/json"
            if let mimeType = MimeType.getType(forStr: contentType) {
                let encoder = try CoderFactory.encoder(for: mimeType)
                let encodedValue = try encoder.encode(parameters as? CreateOrUpdateComputePolicyParametersData)
                return encodedValue
            }
            throw DecodeError.unknownMimeType
        }

        public override func returnFunc(data: Data) throws -> Decodable? {
            let contentType = "application/json"
            if let mimeType = MimeType.getType(forStr: contentType) {
                let decoder = try CoderFactory.decoder(for: mimeType)
                let result = try decoder.decode(ComputePolicyData?.self, from: data)
                return result;
            }
            throw DecodeError.unknownMimeType
        }
        public func execute(client: RuntimeClient,
            completionHandler: @escaping (ComputePolicyProtocol?, Error?) -> Void) -> Void {
            client.executeAsync(command: self) {
                (result: ComputePolicyData?, error: Error?) in
                completionHandler(result, error)
            }
        }
    }
}


import Foundation
import azureSwiftRuntime
public protocol ComputePoliciesDelete  {
    var headerParameters: [String: String] { get set }
    var subscriptionId : String { get set }
    var resourceGroupName : String { get set }
    var accountName : String { get set }
    var computePolicyName : String { get set }
    var apiVersion : String { get set }
    func execute(client: RuntimeClient,
    completionHandler: @escaping (Error?) -> Void) -> Void;
}

extension Commands.ComputePolicies {
// Delete deletes the specified compute policy from the specified Data Lake Analytics account
    internal class DeleteCommand : BaseCommand, ComputePoliciesDelete {
        public var subscriptionId : String
        public var resourceGroupName : String
        public var accountName : String
        public var computePolicyName : String
        public var apiVersion = "2016-11-01"

        public init(subscriptionId: String, resourceGroupName: String, accountName: String, computePolicyName: String) {
            self.subscriptionId = subscriptionId
            self.resourceGroupName = resourceGroupName
            self.accountName = accountName
            self.computePolicyName = computePolicyName
            super.init()
            self.method = "Delete"
            self.isLongRunningOperation = false
            self.path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{accountName}/computePolicies/{computePolicyName}"
            self.headerParameters = ["Content-Type":"application/json; charset=utf-8"]
        }

        public override func preCall()  {
            self.pathParameters["{subscriptionId}"] = String(describing: self.subscriptionId)
            self.pathParameters["{resourceGroupName}"] = String(describing: self.resourceGroupName)
            self.pathParameters["{accountName}"] = String(describing: self.accountName)
            self.pathParameters["{computePolicyName}"] = String(describing: self.computePolicyName)
            self.queryParameters["api-version"] = String(describing: self.apiVersion)

        }

        public func execute(client: RuntimeClient,
            completionHandler: @escaping (Error?) -> Void) -> Void {
            client.executeAsync(command: self) {
                (error) in
                completionHandler(error)
            }
        }
    }
}


import Foundation
import azureSwiftRuntime
public protocol ComputePoliciesGet  {
    var headerParameters: [String: String] { get set }
    var subscriptionId : String { get set }
    var resourceGroupName : String { get set }
    var accountName : String { get set }
    var computePolicyName : String { get set }
    var apiVersion : String { get set }
    func execute(client: RuntimeClient,
    completionHandler: @escaping (ComputePolicyProtocol?, Error?) -> Void) -> Void ;
}

extension Commands.ComputePolicies {
// Get gets the specified Data Lake Analytics compute policy.
    internal class GetCommand : BaseCommand, ComputePoliciesGet {
        public var subscriptionId : String
        public var resourceGroupName : String
        public var accountName : String
        public var computePolicyName : String
        public var apiVersion = "2016-11-01"

        public init(subscriptionId: String, resourceGroupName: String, accountName: String, computePolicyName: String) {
            self.subscriptionId = subscriptionId
            self.resourceGroupName = resourceGroupName
            self.accountName = accountName
            self.computePolicyName = computePolicyName
            super.init()
            self.method = "Get"
            self.isLongRunningOperation = false
            self.path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{accountName}/computePolicies/{computePolicyName}"
            self.headerParameters = ["Content-Type":"application/json; charset=utf-8"]
        }

        public override func preCall()  {
            self.pathParameters["{subscriptionId}"] = String(describing: self.subscriptionId)
            self.pathParameters["{resourceGroupName}"] = String(describing: self.resourceGroupName)
            self.pathParameters["{accountName}"] = String(describing: self.accountName)
            self.pathParameters["{computePolicyName}"] = String(describing: self.computePolicyName)
            self.queryParameters["api-version"] = String(describing: self.apiVersion)

        }

        public override func returnFunc(data: Data) throws -> Decodable? {
            let contentType = "application/json"
            if let mimeType = MimeType.getType(forStr: contentType) {
                let decoder = try CoderFactory.decoder(for: mimeType)
                let result = try decoder.decode(ComputePolicyData?.self, from: data)
                return result;
            }
            throw DecodeError.unknownMimeType
        }
        public func execute(client: RuntimeClient,
            completionHandler: @escaping (ComputePolicyProtocol?, Error?) -> Void) -> Void {
            client.executeAsync(command: self) {
                (result: ComputePolicyData?, error: Error?) in
                completionHandler(result, error)
            }
        }
    }
}


import Foundation
import azureSwiftRuntime
public protocol ComputePoliciesListByAccount  {
    var nextLink: String? { get }
    var hasAdditionalPages : Bool { get }
    var headerParameters: [String: String] { get set }
    var subscriptionId : String { get set }
    var resourceGroupName : String { get set }
    var accountName : String { get set }
    var apiVersion : String { get set }
    func execute(client: RuntimeClient,
    completionHandler: @escaping (ComputePolicyListResultProtocol?, Error?) -> Void) -> Void ;
}

extension Commands.ComputePolicies {
// ListByAccount lists the Data Lake Analytics compute policies within the specified Data Lake Analytics account. An
// account supports, at most, 50 policies
    internal class ListByAccountCommand : BaseCommand, ComputePoliciesListByAccount {
        var nextLink: String?
        public var hasAdditionalPages : Bool {
        get {
            return nextLink != nil
        }
    }
        public var subscriptionId : String
        public var resourceGroupName : String
        public var accountName : String
        public var apiVersion = "2016-11-01"

        public init(subscriptionId: String, resourceGroupName: String, accountName: String) {
            self.subscriptionId = subscriptionId
            self.resourceGroupName = resourceGroupName
            self.accountName = accountName
            super.init()
            self.method = "Get"
            self.isLongRunningOperation = false
            self.path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{accountName}/computePolicies"
            self.headerParameters = ["Content-Type":"application/json; charset=utf-8"]
        }

        public override func preCall()  {
            self.pathParameters["{subscriptionId}"] = String(describing: self.subscriptionId)
            self.pathParameters["{resourceGroupName}"] = String(describing: self.resourceGroupName)
            self.pathParameters["{accountName}"] = String(describing: self.accountName)
            self.queryParameters["api-version"] = String(describing: self.apiVersion)

        }

        public override func returnFunc(data: Data) throws -> Decodable? {
            let contentType = "application/json"
            if let mimeType = MimeType.getType(forStr: contentType) {
                let decoder = try CoderFactory.decoder(for: mimeType)
                if var pageDecoder = decoder as? PageDecoder {
                    pageDecoder.isPagedData = true
                    pageDecoder.nextLinkName = "NextLink"
                }
                let result = try decoder.decode(ComputePolicyListResultData?.self, from: data)
                if var pageDecoder = decoder as? PageDecoder {
                    self.nextLink = pageDecoder.nextLink
                }
                return result;
            }
            throw DecodeError.unknownMimeType
        }
        public func execute(client: RuntimeClient,
            completionHandler: @escaping (ComputePolicyListResultProtocol?, Error?) -> Void) -> Void {
            if self.nextLink != nil {
                self.path = nextLink!
                self.nextLink = nil;
                self.pathType = .absolute
            }
            client.executeAsync(command: self) {
                (result: ComputePolicyListResultData?, error: Error?) in
                completionHandler(result, error)
            }
        }
    }
}


import Foundation
import azureSwiftRuntime
public protocol ComputePoliciesUpdate  {
    var headerParameters: [String: String] { get set }
    var subscriptionId : String { get set }
    var resourceGroupName : String { get set }
    var accountName : String { get set }
    var computePolicyName : String { get set }
    var apiVersion : String { get set }
    var parameters :  UpdateComputePolicyParametersProtocol?  { get set }
    func execute(client: RuntimeClient,
    completionHandler: @escaping (ComputePolicyProtocol?, Error?) -> Void) -> Void ;
}

extension Commands.ComputePolicies {
// Update updates the specified compute policy.
    internal class UpdateCommand : BaseCommand, ComputePoliciesUpdate {
        public var subscriptionId : String
        public var resourceGroupName : String
        public var accountName : String
        public var computePolicyName : String
        public var apiVersion = "2016-11-01"
    public var parameters :  UpdateComputePolicyParametersProtocol?

        public init(subscriptionId: String, resourceGroupName: String, accountName: String, computePolicyName: String) {
            self.subscriptionId = subscriptionId
            self.resourceGroupName = resourceGroupName
            self.accountName = accountName
            self.computePolicyName = computePolicyName
            super.init()
            self.method = "Patch"
            self.isLongRunningOperation = false
            self.path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{accountName}/computePolicies/{computePolicyName}"
            self.headerParameters = ["Content-Type":"application/json; charset=utf-8"]
        }

        public override func preCall()  {
            self.pathParameters["{subscriptionId}"] = String(describing: self.subscriptionId)
            self.pathParameters["{resourceGroupName}"] = String(describing: self.resourceGroupName)
            self.pathParameters["{accountName}"] = String(describing: self.accountName)
            self.pathParameters["{computePolicyName}"] = String(describing: self.computePolicyName)
            self.queryParameters["api-version"] = String(describing: self.apiVersion)
            self.body = parameters

        }
        public override func encodeBody() throws -> Data? {
            let contentType = "application/json"
            if let mimeType = MimeType.getType(forStr: contentType) {
                let encoder = try CoderFactory.encoder(for: mimeType)
                let encodedValue = try encoder.encode(parameters as? UpdateComputePolicyParametersData?)
                return encodedValue
            }
            throw DecodeError.unknownMimeType
        }

        public override func returnFunc(data: Data) throws -> Decodable? {
            let contentType = "application/json"
            if let mimeType = MimeType.getType(forStr: contentType) {
                let decoder = try CoderFactory.decoder(for: mimeType)
                let result = try decoder.decode(ComputePolicyData?.self, from: data)
                return result;
            }
            throw DecodeError.unknownMimeType
        }
        public func execute(client: RuntimeClient,
            completionHandler: @escaping (ComputePolicyProtocol?, Error?) -> Void) -> Void {
            client.executeAsync(command: self) {
                (result: ComputePolicyData?, error: Error?) in
                completionHandler(result, error)
            }
        }
    }
}


// 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.
public class DataFactory {
}
public class Commands {
}


// 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.

// DataLakeStoreAccounts is the creates an Azure Data Lake Analytics account management client.
import Foundation
import azureSwiftRuntime
extension Commands {
public struct DataLakeStoreAccounts {
    public static func Add(subscriptionId: String, resourceGroupName: String, accountName: String, dataLakeStoreAccountName: String) -> DataLakeStoreAccountsAdd {
        return AddCommand(subscriptionId: subscriptionId, resourceGroupName: resourceGroupName, accountName: accountName, dataLakeStoreAccountName: dataLakeStoreAccountName)
    }
    public static func Delete(subscriptionId: String, resourceGroupName: String, accountName: String, dataLakeStoreAccountName: String) -> DataLakeStoreAccountsDelete {
        return DeleteCommand(subscriptionId: subscriptionId, resourceGroupName: resourceGroupName, accountName: accountName, dataLakeStoreAccountName: dataLakeStoreAccountName)
    }
    public static func Get(subscriptionId: String, resourceGroupName: String, accountName: String, dataLakeStoreAccountName: String) -> DataLakeStoreAccountsGet {
        return GetCommand(subscriptionId: subscriptionId, resourceGroupName: resourceGroupName, accountName: accountName, dataLakeStoreAccountName: dataLakeStoreAccountName)
    }
    public static func ListByAccount(subscriptionId: String, resourceGroupName: String, accountName: String) -> DataLakeStoreAccountsListByAccount {
        return ListByAccountCommand(subscriptionId: subscriptionId, resourceGroupName: resourceGroupName, accountName: accountName)
    }
}
}