// 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
import azureSwiftRuntime
internal struct CsvSerializationPropertiesData : CsvSerializationPropertiesProtocol {
    public var fieldDelimiter: String?
    public var encoding: EncodingEnum?

        enum CodingKeys: String, CodingKey {case fieldDelimiter = "fieldDelimiter"
        case encoding = "encoding"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.fieldDelimiter) {
        self.fieldDelimiter = try container.decode(String?.self, forKey: .fieldDelimiter)
    }
    if container.contains(.encoding) {
        self.encoding = try container.decode(EncodingEnum?.self, forKey: .encoding)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.fieldDelimiter != nil {try container.encode(self.fieldDelimiter, forKey: .fieldDelimiter)}
    if self.encoding != nil {try container.encode(self.encoding, forKey: .encoding)}
  }
}

extension DataFactory {
  public static func createCsvSerializationPropertiesProtocol() -> CsvSerializationPropertiesProtocol {
    return CsvSerializationPropertiesData()
  }
}


// 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
import azureSwiftRuntime
internal struct DiagnosticConditionData : DiagnosticConditionProtocol {
    public var since: String?
    public var code: String?
    public var message: String?

        enum CodingKeys: String, CodingKey {case since = "since"
        case code = "code"
        case message = "message"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.since) {
        self.since = try container.decode(String?.self, forKey: .since)
    }
    if container.contains(.code) {
        self.code = try container.decode(String?.self, forKey: .code)
    }
    if container.contains(.message) {
        self.message = try container.decode(String?.self, forKey: .message)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.since != nil {try container.encode(self.since, forKey: .since)}
    if self.code != nil {try container.encode(self.code, forKey: .code)}
    if self.message != nil {try container.encode(self.message, forKey: .message)}
  }
}

extension DataFactory {
  public static func createDiagnosticConditionProtocol() -> DiagnosticConditionProtocol {
    return DiagnosticConditionData()
  }
}


// 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
import azureSwiftRuntime
internal struct DiagnosticsData : DiagnosticsProtocol {
    public var conditions: [DiagnosticConditionProtocol?]?

        enum CodingKeys: String, CodingKey {case conditions = "conditions"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.conditions) {
        self.conditions = try container.decode([DiagnosticConditionData?]?.self, forKey: .conditions)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.conditions != nil {try container.encode(self.conditions as! [DiagnosticConditionData?]?, forKey: .conditions)}
  }
}

extension DataFactory {
  public static func createDiagnosticsProtocol() -> DiagnosticsProtocol {
    return DiagnosticsData()
  }
}


// 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
import azureSwiftRuntime
internal struct DocumentDbOutputDataSourceData : DocumentDbOutputDataSourceProtocol, OutputDataSourceProtocol {
    public var properties: DocumentDbOutputDataSourcePropertiesProtocol?

        enum CodingKeys: String, CodingKey {case properties = "properties"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.properties) {
        self.properties = try container.decode(DocumentDbOutputDataSourcePropertiesData?.self, forKey: .properties)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.properties != nil {try container.encode(self.properties as! DocumentDbOutputDataSourcePropertiesData?, forKey: .properties)}
  }
}

extension DataFactory {
  public static func createDocumentDbOutputDataSourceProtocol() -> DocumentDbOutputDataSourceProtocol {
    return DocumentDbOutputDataSourceData()
  }
}


// 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
import azureSwiftRuntime
internal struct DocumentDbOutputDataSourcePropertiesData : DocumentDbOutputDataSourcePropertiesProtocol {
    public var accountId: String?
    public var accountKey: String?
    public var database: String?
    public var collectionNamePattern: String?
    public var partitionKey: String?
    public var documentId: String?

        enum CodingKeys: String, CodingKey {case accountId = "accountId"
        case accountKey = "accountKey"
        case database = "database"
        case collectionNamePattern = "collectionNamePattern"
        case partitionKey = "partitionKey"
        case documentId = "documentId"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.accountId) {
        self.accountId = try container.decode(String?.self, forKey: .accountId)
    }
    if container.contains(.accountKey) {
        self.accountKey = try container.decode(String?.self, forKey: .accountKey)
    }
    if container.contains(.database) {
        self.database = try container.decode(String?.self, forKey: .database)
    }
    if container.contains(.collectionNamePattern) {
        self.collectionNamePattern = try container.decode(String?.self, forKey: .collectionNamePattern)
    }
    if container.contains(.partitionKey) {
        self.partitionKey = try container.decode(String?.self, forKey: .partitionKey)
    }
    if container.contains(.documentId) {
        self.documentId = try container.decode(String?.self, forKey: .documentId)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.accountId != nil {try container.encode(self.accountId, forKey: .accountId)}
    if self.accountKey != nil {try container.encode(self.accountKey, forKey: .accountKey)}
    if self.database != nil {try container.encode(self.database, forKey: .database)}
    if self.collectionNamePattern != nil {try container.encode(self.collectionNamePattern, forKey: .collectionNamePattern)}
    if self.partitionKey != nil {try container.encode(self.partitionKey, forKey: .partitionKey)}
    if self.documentId != nil {try container.encode(self.documentId, forKey: .documentId)}
  }
}

extension DataFactory {
  public static func createDocumentDbOutputDataSourcePropertiesProtocol() -> DocumentDbOutputDataSourcePropertiesProtocol {
    return DocumentDbOutputDataSourcePropertiesData()
  }
}


// Encoding enumerates the values for encoding.

// 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 enum EncodingEnum: String, Codable
{
// UTF8 specifies the utf8 state for encoding.
    case UTF8 = "UTF8"
}


// 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
import azureSwiftRuntime
internal struct ErrorResponseData : ErrorResponseProtocol {
    public var code: String?
    public var message: String?

        enum CodingKeys: String, CodingKey {case code = "code"
        case message = "message"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.code) {
        self.code = try container.decode(String?.self, forKey: .code)
    }
    if container.contains(.message) {
        self.message = try container.decode(String?.self, forKey: .message)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.code != nil {try container.encode(self.code, forKey: .code)}
    if self.message != nil {try container.encode(self.message, forKey: .message)}
  }
}

extension DataFactory {
  public static func createErrorResponseProtocol() -> ErrorResponseProtocol {
    return ErrorResponseData()
  }
}


// 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
import azureSwiftRuntime
internal struct EventHubDataSourcePropertiesData : EventHubDataSourcePropertiesProtocol, ServiceBusDataSourcePropertiesProtocol {
    public var serviceBusNamespace: String?
    public var sharedAccessPolicyName: String?
    public var sharedAccessPolicyKey: String?
    public var eventHubName: String?

        enum CodingKeys: String, CodingKey {case serviceBusNamespace = "serviceBusNamespace"
        case sharedAccessPolicyName = "sharedAccessPolicyName"
        case sharedAccessPolicyKey = "sharedAccessPolicyKey"
        case eventHubName = "eventHubName"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.serviceBusNamespace) {
        self.serviceBusNamespace = try container.decode(String?.self, forKey: .serviceBusNamespace)
    }
    if container.contains(.sharedAccessPolicyName) {
        self.sharedAccessPolicyName = try container.decode(String?.self, forKey: .sharedAccessPolicyName)
    }
    if container.contains(.sharedAccessPolicyKey) {
        self.sharedAccessPolicyKey = try container.decode(String?.self, forKey: .sharedAccessPolicyKey)
    }
    if container.contains(.eventHubName) {
        self.eventHubName = try container.decode(String?.self, forKey: .eventHubName)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.serviceBusNamespace != nil {try container.encode(self.serviceBusNamespace, forKey: .serviceBusNamespace)}
    if self.sharedAccessPolicyName != nil {try container.encode(self.sharedAccessPolicyName, forKey: .sharedAccessPolicyName)}
    if self.sharedAccessPolicyKey != nil {try container.encode(self.sharedAccessPolicyKey, forKey: .sharedAccessPolicyKey)}
    if self.eventHubName != nil {try container.encode(self.eventHubName, forKey: .eventHubName)}
  }
}

extension DataFactory {
  public static func createEventHubDataSourcePropertiesProtocol() -> EventHubDataSourcePropertiesProtocol {
    return EventHubDataSourcePropertiesData()
  }
}


// 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
import azureSwiftRuntime
internal struct EventHubOutputDataSourceData : EventHubOutputDataSourceProtocol, OutputDataSourceProtocol {
    public var properties: EventHubOutputDataSourcePropertiesProtocol?

        enum CodingKeys: String, CodingKey {case properties = "properties"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.properties) {
        self.properties = try container.decode(EventHubOutputDataSourcePropertiesData?.self, forKey: .properties)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.properties != nil {try container.encode(self.properties as! EventHubOutputDataSourcePropertiesData?, forKey: .properties)}
  }
}

extension DataFactory {
  public static func createEventHubOutputDataSourceProtocol() -> EventHubOutputDataSourceProtocol {
    return EventHubOutputDataSourceData()
  }
}


// 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
import azureSwiftRuntime
internal struct EventHubOutputDataSourcePropertiesData : EventHubOutputDataSourcePropertiesProtocol, EventHubDataSourcePropertiesProtocol, ServiceBusDataSourcePropertiesProtocol {
    public var serviceBusNamespace: String?
    public var sharedAccessPolicyName: String?
    public var sharedAccessPolicyKey: String?
    public var eventHubName: String?
    public var partitionKey: String?

        enum CodingKeys: String, CodingKey {case serviceBusNamespace = "serviceBusNamespace"
        case sharedAccessPolicyName = "sharedAccessPolicyName"
        case sharedAccessPolicyKey = "sharedAccessPolicyKey"
        case eventHubName = "eventHubName"
        case partitionKey = "partitionKey"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.serviceBusNamespace) {
        self.serviceBusNamespace = try container.decode(String?.self, forKey: .serviceBusNamespace)
    }
    if container.contains(.sharedAccessPolicyName) {
        self.sharedAccessPolicyName = try container.decode(String?.self, forKey: .sharedAccessPolicyName)
    }
    if container.contains(.sharedAccessPolicyKey) {
        self.sharedAccessPolicyKey = try container.decode(String?.self, forKey: .sharedAccessPolicyKey)
    }
    if container.contains(.eventHubName) {
        self.eventHubName = try container.decode(String?.self, forKey: .eventHubName)
    }
    if container.contains(.partitionKey) {
        self.partitionKey = try container.decode(String?.self, forKey: .partitionKey)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.serviceBusNamespace != nil {try container.encode(self.serviceBusNamespace, forKey: .serviceBusNamespace)}
    if self.sharedAccessPolicyName != nil {try container.encode(self.sharedAccessPolicyName, forKey: .sharedAccessPolicyName)}
    if self.sharedAccessPolicyKey != nil {try container.encode(self.sharedAccessPolicyKey, forKey: .sharedAccessPolicyKey)}
    if self.eventHubName != nil {try container.encode(self.eventHubName, forKey: .eventHubName)}
    if self.partitionKey != nil {try container.encode(self.partitionKey, forKey: .partitionKey)}
  }
}

extension DataFactory {
  public static func createEventHubOutputDataSourcePropertiesProtocol() -> EventHubOutputDataSourcePropertiesProtocol {
    return EventHubOutputDataSourcePropertiesData()
  }
}


// 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
import azureSwiftRuntime
internal struct EventHubStreamInputDataSourceData : EventHubStreamInputDataSourceProtocol, StreamInputDataSourceProtocol {
    public var properties: EventHubStreamInputDataSourcePropertiesProtocol?

        enum CodingKeys: String, CodingKey {case properties = "properties"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.properties) {
        self.properties = try container.decode(EventHubStreamInputDataSourcePropertiesData?.self, forKey: .properties)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.properties != nil {try container.encode(self.properties as! EventHubStreamInputDataSourcePropertiesData?, forKey: .properties)}
  }
}

extension DataFactory {
  public static func createEventHubStreamInputDataSourceProtocol() -> EventHubStreamInputDataSourceProtocol {
    return EventHubStreamInputDataSourceData()
  }
}


// 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
import azureSwiftRuntime
internal struct EventHubStreamInputDataSourcePropertiesData : EventHubStreamInputDataSourcePropertiesProtocol, EventHubDataSourcePropertiesProtocol, ServiceBusDataSourcePropertiesProtocol {
    public var serviceBusNamespace: String?
    public var sharedAccessPolicyName: String?
    public var sharedAccessPolicyKey: String?
    public var eventHubName: String?
    public var consumerGroupName: String?

        enum CodingKeys: String, CodingKey {case serviceBusNamespace = "serviceBusNamespace"
        case sharedAccessPolicyName = "sharedAccessPolicyName"
        case sharedAccessPolicyKey = "sharedAccessPolicyKey"
        case eventHubName = "eventHubName"
        case consumerGroupName = "consumerGroupName"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.serviceBusNamespace) {
        self.serviceBusNamespace = try container.decode(String?.self, forKey: .serviceBusNamespace)
    }
    if container.contains(.sharedAccessPolicyName) {
        self.sharedAccessPolicyName = try container.decode(String?.self, forKey: .sharedAccessPolicyName)
    }
    if container.contains(.sharedAccessPolicyKey) {
        self.sharedAccessPolicyKey = try container.decode(String?.self, forKey: .sharedAccessPolicyKey)
    }
    if container.contains(.eventHubName) {
        self.eventHubName = try container.decode(String?.self, forKey: .eventHubName)
    }
    if container.contains(.consumerGroupName) {
        self.consumerGroupName = try container.decode(String?.self, forKey: .consumerGroupName)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.serviceBusNamespace != nil {try container.encode(self.serviceBusNamespace, forKey: .serviceBusNamespace)}
    if self.sharedAccessPolicyName != nil {try container.encode(self.sharedAccessPolicyName, forKey: .sharedAccessPolicyName)}
    if self.sharedAccessPolicyKey != nil {try container.encode(self.sharedAccessPolicyKey, forKey: .sharedAccessPolicyKey)}
    if self.eventHubName != nil {try container.encode(self.eventHubName, forKey: .eventHubName)}
    if self.consumerGroupName != nil {try container.encode(self.consumerGroupName, forKey: .consumerGroupName)}
  }
}

extension DataFactory {
  public static func createEventHubStreamInputDataSourcePropertiesProtocol() -> EventHubStreamInputDataSourcePropertiesProtocol {
    return EventHubStreamInputDataSourcePropertiesData()
  }
}


// EventsOutOfOrderPolicy enumerates the values for events out of order policy.

// 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 enum EventsOutOfOrderPolicyEnum: String, Codable
{
// Adjust specifies the adjust state for events out of order policy.
    case Adjust = "Adjust"
// Drop specifies the drop state for events out of order policy.
    case Drop = "Drop"
}


// 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
import azureSwiftRuntime
internal struct FunctionBindingData : FunctionBindingProtocol {

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
  }
}

extension DataFactory {
  public static func createFunctionBindingProtocol() -> FunctionBindingProtocol {
    return FunctionBindingData()
  }
}


// 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
import azureSwiftRuntime
internal struct FunctionData : FunctionProtocol, SubResourceProtocol {
    public var id: String?
    public var name: String?
    public var type: String?
    public var properties: FunctionPropertiesProtocol?

        enum CodingKeys: String, CodingKey {case id = "id"
        case name = "name"
        case type = "type"
        case properties = "properties"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.id) {
        self.id = try container.decode(String?.self, forKey: .id)
    }
    if container.contains(.name) {
        self.name = try container.decode(String?.self, forKey: .name)
    }
    if container.contains(.type) {
        self.type = try container.decode(String?.self, forKey: .type)
    }
    if container.contains(.properties) {
        self.properties = try container.decode(FunctionPropertiesData?.self, forKey: .properties)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.id != nil {try container.encode(self.id, forKey: .id)}
    if self.name != nil {try container.encode(self.name, forKey: .name)}
    if self.type != nil {try container.encode(self.type, forKey: .type)}
    if self.properties != nil {try container.encode(self.properties as! FunctionPropertiesData?, forKey: .properties)}
  }
}

extension DataFactory {
  public static func createFunctionProtocol() -> FunctionProtocol {
    return FunctionData()
  }
}


// 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
import azureSwiftRuntime
internal struct FunctionInputData : FunctionInputProtocol {
    public var dataType: String?
    public var isConfigurationParameter: Bool?

        enum CodingKeys: String, CodingKey {case dataType = "dataType"
        case isConfigurationParameter = "isConfigurationParameter"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.dataType) {
        self.dataType = try container.decode(String?.self, forKey: .dataType)
    }
    if container.contains(.isConfigurationParameter) {
        self.isConfigurationParameter = try container.decode(Bool?.self, forKey: .isConfigurationParameter)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.dataType != nil {try container.encode(self.dataType, forKey: .dataType)}
    if self.isConfigurationParameter != nil {try container.encode(self.isConfigurationParameter, forKey: .isConfigurationParameter)}
  }
}

extension DataFactory {
  public static func createFunctionInputProtocol() -> FunctionInputProtocol {
    return FunctionInputData()
  }
}


// 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
import azureSwiftRuntime
internal struct FunctionListResultData : FunctionListResultProtocol {
    public var value: [FunctionProtocol?]?
    public var _nextLink: String?

        enum CodingKeys: String, CodingKey {case value = "value"
        case _nextLink = "nextLink"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.value) {
        self.value = try container.decode([FunctionData?]?.self, forKey: .value)
    }
    if container.contains(._nextLink) {
        self._nextLink = try container.decode(String?.self, forKey: ._nextLink)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.value != nil {try container.encode(self.value as! [FunctionData?]?, forKey: .value)}
    if self._nextLink != nil {try container.encode(self._nextLink, forKey: ._nextLink)}
  }
}

extension DataFactory {
  public static func createFunctionListResultProtocol() -> FunctionListResultProtocol {
    return FunctionListResultData()
  }
}


// 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
import azureSwiftRuntime
internal struct FunctionOutputData : FunctionOutputProtocol {
    public var dataType: String?

        enum CodingKeys: String, CodingKey {case dataType = "dataType"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.dataType) {
        self.dataType = try container.decode(String?.self, forKey: .dataType)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.dataType != nil {try container.encode(self.dataType, forKey: .dataType)}
  }
}

extension DataFactory {
  public static func createFunctionOutputProtocol() -> FunctionOutputProtocol {
    return FunctionOutputData()
  }
}


// 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
import azureSwiftRuntime
internal struct FunctionPropertiesData : FunctionPropertiesProtocol {
    public var etag: String?

        enum CodingKeys: String, CodingKey {case etag = "etag"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.etag) {
        self.etag = try container.decode(String?.self, forKey: .etag)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.etag != nil {try container.encode(self.etag, forKey: .etag)}
  }
}

extension DataFactory {
  public static func createFunctionPropertiesProtocol() -> FunctionPropertiesProtocol {
    return FunctionPropertiesData()
  }
}


// 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
import azureSwiftRuntime
internal struct FunctionRetrieveDefaultDefinitionParametersData : FunctionRetrieveDefaultDefinitionParametersProtocol {

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
  }
}

extension DataFactory {
  public static func createFunctionRetrieveDefaultDefinitionParametersProtocol() -> FunctionRetrieveDefaultDefinitionParametersProtocol {
    return FunctionRetrieveDefaultDefinitionParametersData()
  }
}


// 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
import azureSwiftRuntime
internal struct FunctionsCreateOrReplaceHeadersData : FunctionsCreateOrReplaceHeadersProtocol {
    public var eTag: String?

        enum CodingKeys: String, CodingKey {case eTag = "ETag"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.eTag) {
        self.eTag = try container.decode(String?.self, forKey: .eTag)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.eTag != nil {try container.encode(self.eTag, forKey: .eTag)}
  }
}

extension DataFactory {
  public static func createFunctionsCreateOrReplaceHeadersProtocol() -> FunctionsCreateOrReplaceHeadersProtocol {
    return FunctionsCreateOrReplaceHeadersData()
  }
}


// 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
import azureSwiftRuntime
internal struct FunctionsGetHeadersData : FunctionsGetHeadersProtocol {
    public var eTag: String?

        enum CodingKeys: String, CodingKey {case eTag = "ETag"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.eTag) {
        self.eTag = try container.decode(String?.self, forKey: .eTag)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.eTag != nil {try container.encode(self.eTag, forKey: .eTag)}
  }
}

extension DataFactory {
  public static func createFunctionsGetHeadersProtocol() -> FunctionsGetHeadersProtocol {
    return FunctionsGetHeadersData()
  }
}


// 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
import azureSwiftRuntime
internal struct FunctionsUpdateHeadersData : FunctionsUpdateHeadersProtocol {
    public var eTag: String?

        enum CodingKeys: String, CodingKey {case eTag = "ETag"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.eTag) {
        self.eTag = try container.decode(String?.self, forKey: .eTag)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.eTag != nil {try container.encode(self.eTag, forKey: .eTag)}
  }
}

extension DataFactory {
  public static func createFunctionsUpdateHeadersProtocol() -> FunctionsUpdateHeadersProtocol {
    return FunctionsUpdateHeadersData()
  }
}


// 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
import azureSwiftRuntime
internal struct InputData : InputProtocol, SubResourceProtocol {
    public var id: String?
    public var name: String?
    public var type: String?
    public var properties: InputPropertiesProtocol?

        enum CodingKeys: String, CodingKey {case id = "id"
        case name = "name"
        case type = "type"
        case properties = "properties"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.id) {
        self.id = try container.decode(String?.self, forKey: .id)
    }
    if container.contains(.name) {
        self.name = try container.decode(String?.self, forKey: .name)
    }
    if container.contains(.type) {
        self.type = try container.decode(String?.self, forKey: .type)
    }
    if container.contains(.properties) {
        self.properties = try container.decode(InputPropertiesData?.self, forKey: .properties)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.id != nil {try container.encode(self.id, forKey: .id)}
    if self.name != nil {try container.encode(self.name, forKey: .name)}
    if self.type != nil {try container.encode(self.type, forKey: .type)}
    if self.properties != nil {try container.encode(self.properties as! InputPropertiesData?, forKey: .properties)}
  }
}

extension DataFactory {
  public static func createInputProtocol() -> InputProtocol {
    return InputData()
  }
}


// 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
import azureSwiftRuntime
internal struct InputListResultData : InputListResultProtocol {
    public var value: [InputProtocol?]?
    public var _nextLink: String?

        enum CodingKeys: String, CodingKey {case value = "value"
        case _nextLink = "nextLink"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.value) {
        self.value = try container.decode([InputData?]?.self, forKey: .value)
    }
    if container.contains(._nextLink) {
        self._nextLink = try container.decode(String?.self, forKey: ._nextLink)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.value != nil {try container.encode(self.value as! [InputData?]?, forKey: .value)}
    if self._nextLink != nil {try container.encode(self._nextLink, forKey: ._nextLink)}
  }
}

extension DataFactory {
  public static func createInputListResultProtocol() -> InputListResultProtocol {
    return InputListResultData()
  }
}


// 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
import azureSwiftRuntime
internal struct InputPropertiesData : InputPropertiesProtocol {
    public var serialization: SerializationProtocol?
    public var diagnostics: DiagnosticsProtocol?
    public var etag: String?

        enum CodingKeys: String, CodingKey {case serialization = "serialization"
        case diagnostics = "diagnostics"
        case etag = "etag"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.serialization) {
        self.serialization = try container.decode(SerializationData?.self, forKey: .serialization)
    }
    if container.contains(.diagnostics) {
        self.diagnostics = try container.decode(DiagnosticsData?.self, forKey: .diagnostics)
    }
    if container.contains(.etag) {
        self.etag = try container.decode(String?.self, forKey: .etag)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.serialization != nil {try container.encode(self.serialization as! SerializationData?, forKey: .serialization)}
    if self.diagnostics != nil {try container.encode(self.diagnostics as! DiagnosticsData?, forKey: .diagnostics)}
    if self.etag != nil {try container.encode(self.etag, forKey: .etag)}
  }
}

extension DataFactory {
  public static func createInputPropertiesProtocol() -> InputPropertiesProtocol {
    return InputPropertiesData()
  }
}


// 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
import azureSwiftRuntime
internal struct InputsCreateOrReplaceHeadersData : InputsCreateOrReplaceHeadersProtocol {
    public var eTag: String?

        enum CodingKeys: String, CodingKey {case eTag = "ETag"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.eTag) {
        self.eTag = try container.decode(String?.self, forKey: .eTag)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.eTag != nil {try container.encode(self.eTag, forKey: .eTag)}
  }
}

extension DataFactory {
  public static func createInputsCreateOrReplaceHeadersProtocol() -> InputsCreateOrReplaceHeadersProtocol {
    return InputsCreateOrReplaceHeadersData()
  }
}


// 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
import azureSwiftRuntime
internal struct InputsGetHeadersData : InputsGetHeadersProtocol {
    public var eTag: String?

        enum CodingKeys: String, CodingKey {case eTag = "ETag"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.eTag) {
        self.eTag = try container.decode(String?.self, forKey: .eTag)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.eTag != nil {try container.encode(self.eTag, forKey: .eTag)}
  }
}

extension DataFactory {
  public static func createInputsGetHeadersProtocol() -> InputsGetHeadersProtocol {
    return InputsGetHeadersData()
  }
}


// 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
import azureSwiftRuntime
internal struct InputsUpdateHeadersData : InputsUpdateHeadersProtocol {
    public var eTag: String?

        enum CodingKeys: String, CodingKey {case eTag = "ETag"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.eTag) {
        self.eTag = try container.decode(String?.self, forKey: .eTag)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.eTag != nil {try container.encode(self.eTag, forKey: .eTag)}
  }
}

extension DataFactory {
  public static func createInputsUpdateHeadersProtocol() -> InputsUpdateHeadersProtocol {
    return InputsUpdateHeadersData()
  }
}


// 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
import azureSwiftRuntime
internal struct IoTHubStreamInputDataSourceData : IoTHubStreamInputDataSourceProtocol, StreamInputDataSourceProtocol {
    public var properties: IoTHubStreamInputDataSourcePropertiesProtocol?

        enum CodingKeys: String, CodingKey {case properties = "properties"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.properties) {
        self.properties = try container.decode(IoTHubStreamInputDataSourcePropertiesData?.self, forKey: .properties)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.properties != nil {try container.encode(self.properties as! IoTHubStreamInputDataSourcePropertiesData?, forKey: .properties)}
  }
}

extension DataFactory {
  public static func createIoTHubStreamInputDataSourceProtocol() -> IoTHubStreamInputDataSourceProtocol {
    return IoTHubStreamInputDataSourceData()
  }
}


// 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
import azureSwiftRuntime
internal struct IoTHubStreamInputDataSourcePropertiesData : IoTHubStreamInputDataSourcePropertiesProtocol {
    public var iotHubNamespace: String?
    public var sharedAccessPolicyName: String?
    public var sharedAccessPolicyKey: String?
    public var consumerGroupName: String?
    public var endpoint: String?

        enum CodingKeys: String, CodingKey {case iotHubNamespace = "iotHubNamespace"
        case sharedAccessPolicyName = "sharedAccessPolicyName"
        case sharedAccessPolicyKey = "sharedAccessPolicyKey"
        case consumerGroupName = "consumerGroupName"
        case endpoint = "endpoint"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.iotHubNamespace) {
        self.iotHubNamespace = try container.decode(String?.self, forKey: .iotHubNamespace)
    }
    if container.contains(.sharedAccessPolicyName) {
        self.sharedAccessPolicyName = try container.decode(String?.self, forKey: .sharedAccessPolicyName)
    }
    if container.contains(.sharedAccessPolicyKey) {
        self.sharedAccessPolicyKey = try container.decode(String?.self, forKey: .sharedAccessPolicyKey)
    }
    if container.contains(.consumerGroupName) {
        self.consumerGroupName = try container.decode(String?.self, forKey: .consumerGroupName)
    }
    if container.contains(.endpoint) {
        self.endpoint = try container.decode(String?.self, forKey: .endpoint)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.iotHubNamespace != nil {try container.encode(self.iotHubNamespace, forKey: .iotHubNamespace)}
    if self.sharedAccessPolicyName != nil {try container.encode(self.sharedAccessPolicyName, forKey: .sharedAccessPolicyName)}
    if self.sharedAccessPolicyKey != nil {try container.encode(self.sharedAccessPolicyKey, forKey: .sharedAccessPolicyKey)}
    if self.consumerGroupName != nil {try container.encode(self.consumerGroupName, forKey: .consumerGroupName)}
    if self.endpoint != nil {try container.encode(self.endpoint, forKey: .endpoint)}
  }
}

extension DataFactory {
  public static func createIoTHubStreamInputDataSourcePropertiesProtocol() -> IoTHubStreamInputDataSourcePropertiesProtocol {
    return IoTHubStreamInputDataSourcePropertiesData()
  }
}


// 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
import azureSwiftRuntime
internal struct JavaScriptFunctionBindingData : JavaScriptFunctionBindingProtocol, FunctionBindingProtocol {
    public var properties: JavaScriptFunctionBindingPropertiesProtocol?

        enum CodingKeys: String, CodingKey {case properties = "properties"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.properties) {
        self.properties = try container.decode(JavaScriptFunctionBindingPropertiesData?.self, forKey: .properties)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.properties != nil {try container.encode(self.properties as! JavaScriptFunctionBindingPropertiesData?, forKey: .properties)}
  }
}

extension DataFactory {
  public static func createJavaScriptFunctionBindingProtocol() -> JavaScriptFunctionBindingProtocol {
    return JavaScriptFunctionBindingData()
  }
}


// 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
import azureSwiftRuntime
internal struct JavaScriptFunctionBindingPropertiesData : JavaScriptFunctionBindingPropertiesProtocol {
    public var script: String?

        enum CodingKeys: String, CodingKey {case script = "script"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.script) {
        self.script = try container.decode(String?.self, forKey: .script)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.script != nil {try container.encode(self.script, forKey: .script)}
  }
}

extension DataFactory {
  public static func createJavaScriptFunctionBindingPropertiesProtocol() -> JavaScriptFunctionBindingPropertiesProtocol {
    return JavaScriptFunctionBindingPropertiesData()
  }
}


// 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
import azureSwiftRuntime
internal struct JavaScriptFunctionBindingRetrievalPropertiesData : JavaScriptFunctionBindingRetrievalPropertiesProtocol {
    public var script: String?
    public var udfType: UdfTypeEnum?

        enum CodingKeys: String, CodingKey {case script = "script"
        case udfType = "udfType"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.script) {
        self.script = try container.decode(String?.self, forKey: .script)
    }
    if container.contains(.udfType) {
        self.udfType = try container.decode(UdfTypeEnum?.self, forKey: .udfType)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.script != nil {try container.encode(self.script, forKey: .script)}
    if self.udfType != nil {try container.encode(self.udfType, forKey: .udfType)}
  }
}

extension DataFactory {
  public static func createJavaScriptFunctionBindingRetrievalPropertiesProtocol() -> JavaScriptFunctionBindingRetrievalPropertiesProtocol {
    return JavaScriptFunctionBindingRetrievalPropertiesData()
  }
}


// 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
import azureSwiftRuntime
internal struct JavaScriptFunctionRetrieveDefaultDefinitionParametersData : JavaScriptFunctionRetrieveDefaultDefinitionParametersProtocol, FunctionRetrieveDefaultDefinitionParametersProtocol {
    public var bindingRetrievalProperties: JavaScriptFunctionBindingRetrievalPropertiesProtocol?

        enum CodingKeys: String, CodingKey {case bindingRetrievalProperties = "bindingRetrievalProperties"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.bindingRetrievalProperties) {
        self.bindingRetrievalProperties = try container.decode(JavaScriptFunctionBindingRetrievalPropertiesData?.self, forKey: .bindingRetrievalProperties)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.bindingRetrievalProperties != nil {try container.encode(self.bindingRetrievalProperties as! JavaScriptFunctionBindingRetrievalPropertiesData?, forKey: .bindingRetrievalProperties)}
  }
}

extension DataFactory {
  public static func createJavaScriptFunctionRetrieveDefaultDefinitionParametersProtocol() -> JavaScriptFunctionRetrieveDefaultDefinitionParametersProtocol {
    return JavaScriptFunctionRetrieveDefaultDefinitionParametersData()
  }
}


// JsonOutputSerializationFormat enumerates the values for json output serialization format.

// 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 enum JsonOutputSerializationFormatEnum: String, Codable
{
// _array specifies the _ array state for json output serialization format.
    case _array = "Array"
// LineSeparated specifies the line separated state for json output serialization format.
    case LineSeparated = "LineSeparated"
}


// 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
import azureSwiftRuntime
internal struct JsonSerializationData : JsonSerializationProtocol, SerializationProtocol {
    public var properties: JsonSerializationPropertiesProtocol?

        enum CodingKeys: String, CodingKey {case properties = "properties"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.properties) {
        self.properties = try container.decode(JsonSerializationPropertiesData?.self, forKey: .properties)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.properties != nil {try container.encode(self.properties as! JsonSerializationPropertiesData?, forKey: .properties)}
  }
}

extension DataFactory {
  public static func createJsonSerializationProtocol() -> JsonSerializationProtocol {
    return JsonSerializationData()
  }
}


// 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
import azureSwiftRuntime
internal struct JsonSerializationPropertiesData : JsonSerializationPropertiesProtocol {
    public var encoding: EncodingEnum?
    public var format: JsonOutputSerializationFormatEnum?

        enum CodingKeys: String, CodingKey {case encoding = "encoding"
        case format = "format"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.encoding) {
        self.encoding = try container.decode(EncodingEnum?.self, forKey: .encoding)
    }
    if container.contains(.format) {
        self.format = try container.decode(JsonOutputSerializationFormatEnum?.self, forKey: .format)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.encoding != nil {try container.encode(self.encoding, forKey: .encoding)}
    if self.format != nil {try container.encode(self.format, forKey: .format)}
  }
}

extension DataFactory {
  public static func createJsonSerializationPropertiesProtocol() -> JsonSerializationPropertiesProtocol {
    return JsonSerializationPropertiesData()
  }
}


// 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
import azureSwiftRuntime
internal struct OAuthBasedDataSourcePropertiesData : OAuthBasedDataSourcePropertiesProtocol {
    public var refreshToken: String?
    public var tokenUserPrincipalName: String?
    public var tokenUserDisplayName: String?

        enum CodingKeys: String, CodingKey {case refreshToken = "refreshToken"
        case tokenUserPrincipalName = "tokenUserPrincipalName"
        case tokenUserDisplayName = "tokenUserDisplayName"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.refreshToken) {
        self.refreshToken = try container.decode(String?.self, forKey: .refreshToken)
    }
    if container.contains(.tokenUserPrincipalName) {
        self.tokenUserPrincipalName = try container.decode(String?.self, forKey: .tokenUserPrincipalName)
    }
    if container.contains(.tokenUserDisplayName) {
        self.tokenUserDisplayName = try container.decode(String?.self, forKey: .tokenUserDisplayName)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.refreshToken != nil {try container.encode(self.refreshToken, forKey: .refreshToken)}
    if self.tokenUserPrincipalName != nil {try container.encode(self.tokenUserPrincipalName, forKey: .tokenUserPrincipalName)}
    if self.tokenUserDisplayName != nil {try container.encode(self.tokenUserDisplayName, forKey: .tokenUserDisplayName)}
  }
}

extension DataFactory {
  public static func createOAuthBasedDataSourcePropertiesProtocol() -> OAuthBasedDataSourcePropertiesProtocol {
    return OAuthBasedDataSourcePropertiesData()
  }
}


// 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
import azureSwiftRuntime
internal struct OperationData : OperationProtocol {
    public var name: String?
    public var display: OperationDisplayProtocol?

        enum CodingKeys: String, CodingKey {case name = "name"
        case display = "display"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.name) {
        self.name = try container.decode(String?.self, forKey: .name)
    }
    if container.contains(.display) {
        self.display = try container.decode(OperationDisplayData?.self, forKey: .display)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.name != nil {try container.encode(self.name, forKey: .name)}
    if self.display != nil {try container.encode(self.display as! OperationDisplayData?, forKey: .display)}
  }
}

extension DataFactory {
  public static func createOperationProtocol() -> OperationProtocol {
    return OperationData()
  }
}


// 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
import azureSwiftRuntime
internal struct OperationDisplayData : OperationDisplayProtocol {
    public var provider: String?
    public var resource: String?
    public var operation: String?
    public var description: String?

        enum CodingKeys: String, CodingKey {case provider = "provider"
        case resource = "resource"
        case operation = "operation"
        case description = "description"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.provider) {
        self.provider = try container.decode(String?.self, forKey: .provider)
    }
    if container.contains(.resource) {
        self.resource = try container.decode(String?.self, forKey: .resource)
    }
    if container.contains(.operation) {
        self.operation = try container.decode(String?.self, forKey: .operation)
    }
    if container.contains(.description) {
        self.description = try container.decode(String?.self, forKey: .description)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.provider != nil {try container.encode(self.provider, forKey: .provider)}
    if self.resource != nil {try container.encode(self.resource, forKey: .resource)}
    if self.operation != nil {try container.encode(self.operation, forKey: .operation)}
    if self.description != nil {try container.encode(self.description, forKey: .description)}
  }
}

extension DataFactory {
  public static func createOperationDisplayProtocol() -> OperationDisplayProtocol {
    return OperationDisplayData()
  }
}


// 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
import azureSwiftRuntime
internal struct OperationListResultData : OperationListResultProtocol {
    public var value: [OperationProtocol?]?
    public var _nextLink: String?

        enum CodingKeys: String, CodingKey {case value = "value"
        case _nextLink = "nextLink"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.value) {
        self.value = try container.decode([OperationData?]?.self, forKey: .value)
    }
    if container.contains(._nextLink) {
        self._nextLink = try container.decode(String?.self, forKey: ._nextLink)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.value != nil {try container.encode(self.value as! [OperationData?]?, forKey: .value)}
    if self._nextLink != nil {try container.encode(self._nextLink, forKey: ._nextLink)}
  }
}

extension DataFactory {
  public static func createOperationListResultProtocol() -> OperationListResultProtocol {
    return OperationListResultData()
  }
}


// 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
import azureSwiftRuntime
internal struct OutputData : OutputProtocol, SubResourceProtocol {
    public var id: String?
    public var name: String?
    public var type: String?
    public var properties: OutputPropertiesProtocol?

        enum CodingKeys: String, CodingKey {case id = "id"
        case name = "name"
        case type = "type"
        case properties = "properties"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.id) {
        self.id = try container.decode(String?.self, forKey: .id)
    }
    if container.contains(.name) {
        self.name = try container.decode(String?.self, forKey: .name)
    }
    if container.contains(.type) {
        self.type = try container.decode(String?.self, forKey: .type)
    }
    if container.contains(.properties) {
        self.properties = try container.decode(OutputPropertiesData?.self, forKey: .properties)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.id != nil {try container.encode(self.id, forKey: .id)}
    if self.name != nil {try container.encode(self.name, forKey: .name)}
    if self.type != nil {try container.encode(self.type, forKey: .type)}
    if self.properties != nil {try container.encode(self.properties as! OutputPropertiesData?, forKey: .properties)}
  }
}

extension DataFactory {
  public static func createOutputProtocol() -> OutputProtocol {
    return OutputData()
  }
}


// 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
import azureSwiftRuntime
internal struct OutputDataSourceData : OutputDataSourceProtocol {

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
  }
}

extension DataFactory {
  public static func createOutputDataSourceProtocol() -> OutputDataSourceProtocol {
    return OutputDataSourceData()
  }
}


// OutputErrorPolicy enumerates the values for output error policy.

// 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 enum OutputErrorPolicyEnum: String, Codable
{
// OutputErrorPolicyDrop specifies the output error policy drop state for output error policy.
    case OutputErrorPolicyDrop = "Drop"
// OutputErrorPolicyStop specifies the output error policy stop state for output error policy.
    case OutputErrorPolicyStop = "Stop"
}


// 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
import azureSwiftRuntime
internal struct OutputListResultData : OutputListResultProtocol {
    public var value: [OutputProtocol?]?
    public var _nextLink: String?

        enum CodingKeys: String, CodingKey {case value = "value"
        case _nextLink = "nextLink"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.value) {
        self.value = try container.decode([OutputData?]?.self, forKey: .value)
    }
    if container.contains(._nextLink) {
        self._nextLink = try container.decode(String?.self, forKey: ._nextLink)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.value != nil {try container.encode(self.value as! [OutputData?]?, forKey: .value)}
    if self._nextLink != nil {try container.encode(self._nextLink, forKey: ._nextLink)}
  }
}

extension DataFactory {
  public static func createOutputListResultProtocol() -> OutputListResultProtocol {
    return OutputListResultData()
  }
}


// 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
import azureSwiftRuntime
internal struct OutputPropertiesData : OutputPropertiesProtocol {
    public var datasource: OutputDataSourceProtocol?
    public var serialization: SerializationProtocol?
    public var diagnostics: DiagnosticsProtocol?
    public var etag: String?

        enum CodingKeys: String, CodingKey {case datasource = "datasource"
        case serialization = "serialization"
        case diagnostics = "diagnostics"
        case etag = "etag"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.datasource) {
        self.datasource = try container.decode(OutputDataSourceData?.self, forKey: .datasource)
    }
    if container.contains(.serialization) {
        self.serialization = try container.decode(SerializationData?.self, forKey: .serialization)
    }
    if container.contains(.diagnostics) {
        self.diagnostics = try container.decode(DiagnosticsData?.self, forKey: .diagnostics)
    }
    if container.contains(.etag) {
        self.etag = try container.decode(String?.self, forKey: .etag)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.datasource != nil {try container.encode(self.datasource as! OutputDataSourceData?, forKey: .datasource)}
    if self.serialization != nil {try container.encode(self.serialization as! SerializationData?, forKey: .serialization)}
    if self.diagnostics != nil {try container.encode(self.diagnostics as! DiagnosticsData?, forKey: .diagnostics)}
    if self.etag != nil {try container.encode(self.etag, forKey: .etag)}
  }
}

extension DataFactory {
  public static func createOutputPropertiesProtocol() -> OutputPropertiesProtocol {
    return OutputPropertiesData()
  }
}


// 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
import azureSwiftRuntime
internal struct OutputsCreateOrReplaceHeadersData : OutputsCreateOrReplaceHeadersProtocol {
    public var eTag: String?

        enum CodingKeys: String, CodingKey {case eTag = "ETag"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.eTag) {
        self.eTag = try container.decode(String?.self, forKey: .eTag)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.eTag != nil {try container.encode(self.eTag, forKey: .eTag)}
  }
}

extension DataFactory {
  public static func createOutputsCreateOrReplaceHeadersProtocol() -> OutputsCreateOrReplaceHeadersProtocol {
    return OutputsCreateOrReplaceHeadersData()
  }
}


// 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
import azureSwiftRuntime
internal struct OutputsGetHeadersData : OutputsGetHeadersProtocol {
    public var eTag: String?

        enum CodingKeys: String, CodingKey {case eTag = "ETag"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.eTag) {
        self.eTag = try container.decode(String?.self, forKey: .eTag)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.eTag != nil {try container.encode(self.eTag, forKey: .eTag)}
  }
}

extension DataFactory {
  public static func createOutputsGetHeadersProtocol() -> OutputsGetHeadersProtocol {
    return OutputsGetHeadersData()
  }
}


// OutputStartMode enumerates the values for output start mode.

// 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 enum OutputStartModeEnum: String, Codable
{
// CustomTime specifies the custom time state for output start mode.
    case CustomTime = "CustomTime"
// JobStartTime specifies the job start time state for output start mode.
    case JobStartTime = "JobStartTime"
// LastOutputEventTime specifies the last output event time state for output start mode.
    case LastOutputEventTime = "LastOutputEventTime"
}


// 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
import azureSwiftRuntime
internal struct OutputsUpdateHeadersData : OutputsUpdateHeadersProtocol {
    public var eTag: String?

        enum CodingKeys: String, CodingKey {case eTag = "ETag"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.eTag) {
        self.eTag = try container.decode(String?.self, forKey: .eTag)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.eTag != nil {try container.encode(self.eTag, forKey: .eTag)}
  }
}

extension DataFactory {
  public static func createOutputsUpdateHeadersProtocol() -> OutputsUpdateHeadersProtocol {
    return OutputsUpdateHeadersData()
  }
}


// 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
import azureSwiftRuntime
internal struct PowerBIOutputDataSourceData : PowerBIOutputDataSourceProtocol, OutputDataSourceProtocol {
    public var properties: PowerBIOutputDataSourcePropertiesProtocol?

        enum CodingKeys: String, CodingKey {case properties = "properties"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.properties) {
        self.properties = try container.decode(PowerBIOutputDataSourcePropertiesData?.self, forKey: .properties)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.properties != nil {try container.encode(self.properties as! PowerBIOutputDataSourcePropertiesData?, forKey: .properties)}
  }
}

extension DataFactory {
  public static func createPowerBIOutputDataSourceProtocol() -> PowerBIOutputDataSourceProtocol {
    return PowerBIOutputDataSourceData()
  }
}


// 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
import azureSwiftRuntime
internal struct PowerBIOutputDataSourcePropertiesData : PowerBIOutputDataSourcePropertiesProtocol, OAuthBasedDataSourcePropertiesProtocol {
    public var refreshToken: String?
    public var tokenUserPrincipalName: String?
    public var tokenUserDisplayName: String?
    public var dataset: String?
    public var table: String?
    public var groupId: String?
    public var groupName: String?

        enum CodingKeys: String, CodingKey {case refreshToken = "refreshToken"
        case tokenUserPrincipalName = "tokenUserPrincipalName"
        case tokenUserDisplayName = "tokenUserDisplayName"
        case dataset = "dataset"
        case table = "table"
        case groupId = "groupId"
        case groupName = "groupName"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.refreshToken) {
        self.refreshToken = try container.decode(String?.self, forKey: .refreshToken)
    }
    if container.contains(.tokenUserPrincipalName) {
        self.tokenUserPrincipalName = try container.decode(String?.self, forKey: .tokenUserPrincipalName)
    }
    if container.contains(.tokenUserDisplayName) {
        self.tokenUserDisplayName = try container.decode(String?.self, forKey: .tokenUserDisplayName)
    }
    if container.contains(.dataset) {
        self.dataset = try container.decode(String?.self, forKey: .dataset)
    }
    if container.contains(.table) {
        self.table = try container.decode(String?.self, forKey: .table)
    }
    if container.contains(.groupId) {
        self.groupId = try container.decode(String?.self, forKey: .groupId)
    }
    if container.contains(.groupName) {
        self.groupName = try container.decode(String?.self, forKey: .groupName)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.refreshToken != nil {try container.encode(self.refreshToken, forKey: .refreshToken)}
    if self.tokenUserPrincipalName != nil {try container.encode(self.tokenUserPrincipalName, forKey: .tokenUserPrincipalName)}
    if self.tokenUserDisplayName != nil {try container.encode(self.tokenUserDisplayName, forKey: .tokenUserDisplayName)}
    if self.dataset != nil {try container.encode(self.dataset, forKey: .dataset)}
    if self.table != nil {try container.encode(self.table, forKey: .table)}
    if self.groupId != nil {try container.encode(self.groupId, forKey: .groupId)}
    if self.groupName != nil {try container.encode(self.groupName, forKey: .groupName)}
  }
}

extension DataFactory {
  public static func createPowerBIOutputDataSourcePropertiesProtocol() -> PowerBIOutputDataSourcePropertiesProtocol {
    return PowerBIOutputDataSourcePropertiesData()
  }
}


// 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
import azureSwiftRuntime
internal struct ReferenceInputDataSourceData : ReferenceInputDataSourceProtocol {

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
  }
}

extension DataFactory {
  public static func createReferenceInputDataSourceProtocol() -> ReferenceInputDataSourceProtocol {
    return ReferenceInputDataSourceData()
  }
}


// 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
import azureSwiftRuntime
internal struct ReferenceInputPropertiesData : ReferenceInputPropertiesProtocol, InputPropertiesProtocol {
    public var serialization: SerializationProtocol?
    public var diagnostics: DiagnosticsProtocol?
    public var etag: String?
    public var datasource: ReferenceInputDataSourceProtocol?

        enum CodingKeys: String, CodingKey {case serialization = "serialization"
        case diagnostics = "diagnostics"
        case etag = "etag"
        case datasource = "datasource"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.serialization) {
        self.serialization = try container.decode(SerializationData?.self, forKey: .serialization)
    }
    if container.contains(.diagnostics) {
        self.diagnostics = try container.decode(DiagnosticsData?.self, forKey: .diagnostics)
    }
    if container.contains(.etag) {
        self.etag = try container.decode(String?.self, forKey: .etag)
    }
    if container.contains(.datasource) {
        self.datasource = try container.decode(ReferenceInputDataSourceData?.self, forKey: .datasource)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.serialization != nil {try container.encode(self.serialization as! SerializationData?, forKey: .serialization)}
    if self.diagnostics != nil {try container.encode(self.diagnostics as! DiagnosticsData?, forKey: .diagnostics)}
    if self.etag != nil {try container.encode(self.etag, forKey: .etag)}
    if self.datasource != nil {try container.encode(self.datasource as! ReferenceInputDataSourceData?, forKey: .datasource)}
  }
}

extension DataFactory {
  public static func createReferenceInputPropertiesProtocol() -> ReferenceInputPropertiesProtocol {
    return ReferenceInputPropertiesData()
  }
}


// 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
import azureSwiftRuntime
internal struct ResourceData : ResourceProtocol {
    public var id: String?
    public var name: String?
    public var type: String?
    public var location: String?
    public var tags: [String:String]?

        enum CodingKeys: String, CodingKey {case id = "id"
        case name = "name"
        case type = "type"
        case location = "location"
        case tags = "tags"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.id) {
        self.id = try container.decode(String?.self, forKey: .id)
    }
    if container.contains(.name) {
        self.name = try container.decode(String?.self, forKey: .name)
    }
    if container.contains(.type) {
        self.type = try container.decode(String?.self, forKey: .type)
    }
    if container.contains(.location) {
        self.location = try container.decode(String?.self, forKey: .location)
    }
    if container.contains(.tags) {
        self.tags = try container.decode([String:String]?.self, forKey: .tags)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.id != nil {try container.encode(self.id, forKey: .id)}
    if self.name != nil {try container.encode(self.name, forKey: .name)}
    if self.type != nil {try container.encode(self.type, forKey: .type)}
    if self.location != nil {try container.encode(self.location, forKey: .location)}
    if self.tags != nil {try container.encode(self.tags, forKey: .tags)}
  }
}

extension DataFactory {
  public static func createResourceProtocol() -> ResourceProtocol {
    return ResourceData()
  }
}


// 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
import azureSwiftRuntime
internal struct ResourceTestStatusData : ResourceTestStatusProtocol {
    public var status: String?
    public var error: ErrorResponseProtocol?

        enum CodingKeys: String, CodingKey {case status = "status"
        case error = "error"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.status) {
        self.status = try container.decode(String?.self, forKey: .status)
    }
    if container.contains(.error) {
        self.error = try container.decode(ErrorResponseData?.self, forKey: .error)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.status != nil {try container.encode(self.status, forKey: .status)}
    if self.error != nil {try container.encode(self.error as! ErrorResponseData?, forKey: .error)}
  }
}

extension DataFactory {
  public static func createResourceTestStatusProtocol() -> ResourceTestStatusProtocol {
    return ResourceTestStatusData()
  }
}


// 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
import azureSwiftRuntime
internal struct ScalarFunctionConfigurationData : ScalarFunctionConfigurationProtocol {
    public var inputs: [FunctionInputProtocol?]?
    public var output: FunctionOutputProtocol?
    public var binding: FunctionBindingProtocol?

        enum CodingKeys: String, CodingKey {case inputs = "inputs"
        case output = "output"
        case binding = "binding"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.inputs) {
        self.inputs = try container.decode([FunctionInputData?]?.self, forKey: .inputs)
    }
    if container.contains(.output) {
        self.output = try container.decode(FunctionOutputData?.self, forKey: .output)
    }
    if container.contains(.binding) {
        self.binding = try container.decode(FunctionBindingData?.self, forKey: .binding)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.inputs != nil {try container.encode(self.inputs as! [FunctionInputData?]?, forKey: .inputs)}
    if self.output != nil {try container.encode(self.output as! FunctionOutputData?, forKey: .output)}
    if self.binding != nil {try container.encode(self.binding as! FunctionBindingData?, forKey: .binding)}
  }
}

extension DataFactory {
  public static func createScalarFunctionConfigurationProtocol() -> ScalarFunctionConfigurationProtocol {
    return ScalarFunctionConfigurationData()
  }
}


// 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
import azureSwiftRuntime
internal struct ScalarFunctionPropertiesData : ScalarFunctionPropertiesProtocol, FunctionPropertiesProtocol {
    public var etag: String?
    public var properties: ScalarFunctionConfigurationProtocol?

        enum CodingKeys: String, CodingKey {case etag = "etag"
        case properties = "properties"
        }

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
      if container.contains(.etag) {
        self.etag = try container.decode(String?.self, forKey: .etag)
    }
    if container.contains(.properties) {
        self.properties = try container.decode(ScalarFunctionConfigurationData?.self, forKey: .properties)
    }
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    if self.etag != nil {try container.encode(self.etag, forKey: .etag)}
    if self.properties != nil {try container.encode(self.properties as! ScalarFunctionConfigurationData?, forKey: .properties)}
  }
}

extension DataFactory {
  public static func createScalarFunctionPropertiesProtocol() -> ScalarFunctionPropertiesProtocol {
    return ScalarFunctionPropertiesData()
  }
}


// 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
import azureSwiftRuntime
internal struct SerializationData : SerializationProtocol {

  public init()  {
  }

  public init(from decoder: Decoder) throws {
    if var pageDecoder = decoder as? PageDecoder  {
      if pageDecoder.isPagedData,
        let nextLinkName = pageDecoder.nextLinkName {
          pageDecoder.nextLink = try UnknownCodingKey.decodeStringForKey(decoder: decoder, keyForDecode: nextLinkName)
      }
    }
  }

  public func encode(to encoder: Encoder) throws {
  }
}

extension DataFactory {
  public static func createSerializationProtocol() -> SerializationProtocol {
    return SerializationData()
  }
}