/*
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 *
 * Code generated by Microsoft (R) AutoRest Code Generator.
 * Changes may cause incorrect behavior and will be lost if the code is regenerated.
 */

import { CloudErrorMapper, BaseResourceMapper } from "@azure/ms-rest-azure-js";
import * as msRest from "@azure/ms-rest-js";

export const CloudError = CloudErrorMapper;
export const BaseResource = BaseResourceMapper;

export const Sku: msRest.CompositeMapper = {
  serializedName: "Sku",
  type: {
    name: "Composite",
    className: "Sku",
    modelProperties: {
      name: {
        required: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      family: {
        serializedName: "family",
        type: {
          name: "String"
        }
      },
      capacity: {
        serializedName: "capacity",
        type: {
          name: "Number"
        }
      }
    }
  }
};

export const Resource: msRest.CompositeMapper = {
  serializedName: "Resource",
  type: {
    name: "Composite",
    className: "Resource",
    modelProperties: {
      id: {
        readOnly: true,
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      name: {
        readOnly: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      type: {
        readOnly: true,
        serializedName: "type",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const TrackedResource: msRest.CompositeMapper = {
  serializedName: "TrackedResource",
  type: {
    name: "Composite",
    className: "TrackedResource",
    modelProperties: {
      ...Resource.type.modelProperties,
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      },
      location: {
        serializedName: "location",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const AutomationAccount: msRest.CompositeMapper = {
  serializedName: "AutomationAccount",
  type: {
    name: "Composite",
    className: "AutomationAccount",
    modelProperties: {
      ...TrackedResource.type.modelProperties,
      sku: {
        serializedName: "properties.sku",
        type: {
          name: "Composite",
          className: "Sku"
        }
      },
      lastModifiedBy: {
        serializedName: "properties.lastModifiedBy",
        type: {
          name: "String"
        }
      },
      state: {
        readOnly: true,
        serializedName: "properties.state",
        type: {
          name: "String"
        }
      },
      creationTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      etag: {
        serializedName: "etag",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const AutomationAccountCreateOrUpdateParameters: msRest.CompositeMapper = {
  serializedName: "AutomationAccountCreateOrUpdateParameters",
  type: {
    name: "Composite",
    className: "AutomationAccountCreateOrUpdateParameters",
    modelProperties: {
      sku: {
        serializedName: "properties.sku",
        type: {
          name: "Composite",
          className: "Sku"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      location: {
        serializedName: "location",
        type: {
          name: "String"
        }
      },
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const OperationDisplay: msRest.CompositeMapper = {
  serializedName: "Operation_display",
  type: {
    name: "Composite",
    className: "OperationDisplay",
    modelProperties: {
      provider: {
        serializedName: "provider",
        type: {
          name: "String"
        }
      },
      resource: {
        serializedName: "resource",
        type: {
          name: "String"
        }
      },
      operation: {
        serializedName: "operation",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const Operation: msRest.CompositeMapper = {
  serializedName: "Operation",
  type: {
    name: "Composite",
    className: "Operation",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      display: {
        serializedName: "display",
        type: {
          name: "Composite",
          className: "OperationDisplay"
        }
      }
    }
  }
};

export const Statistics: msRest.CompositeMapper = {
  serializedName: "Statistics",
  type: {
    name: "Composite",
    className: "Statistics",
    modelProperties: {
      counterProperty: {
        readOnly: true,
        serializedName: "counterProperty",
        type: {
          name: "String"
        }
      },
      counterValue: {
        readOnly: true,
        serializedName: "counterValue",
        type: {
          name: "Number"
        }
      },
      startTime: {
        nullable: false,
        readOnly: true,
        serializedName: "startTime",
        type: {
          name: "DateTime"
        }
      },
      endTime: {
        nullable: true,
        readOnly: true,
        serializedName: "endTime",
        type: {
          name: "DateTime"
        }
      },
      id: {
        readOnly: true,
        serializedName: "id",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const UsageCounterName: msRest.CompositeMapper = {
  serializedName: "UsageCounterName",
  type: {
    name: "Composite",
    className: "UsageCounterName",
    modelProperties: {
      value: {
        serializedName: "value",
        type: {
          name: "String"
        }
      },
      localizedValue: {
        serializedName: "localizedValue",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const Usage: msRest.CompositeMapper = {
  serializedName: "Usage",
  type: {
    name: "Composite",
    className: "Usage",
    modelProperties: {
      id: {
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "Composite",
          className: "UsageCounterName"
        }
      },
      unit: {
        serializedName: "unit",
        type: {
          name: "String"
        }
      },
      currentValue: {
        serializedName: "currentValue",
        type: {
          name: "Number"
        }
      },
      limit: {
        serializedName: "limit",
        type: {
          name: "Number"
        }
      },
      throttleStatus: {
        serializedName: "throttleStatus",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const Key: msRest.CompositeMapper = {
  serializedName: "Key",
  type: {
    name: "Composite",
    className: "Key",
    modelProperties: {
      keyName: {
        readOnly: true,
        serializedName: "KeyName",
        type: {
          name: "String"
        }
      },
      permissions: {
        readOnly: true,
        serializedName: "Permissions",
        type: {
          name: "String"
        }
      },
      value: {
        readOnly: true,
        serializedName: "Value",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const KeyListResult: msRest.CompositeMapper = {
  serializedName: "KeyListResult",
  type: {
    name: "Composite",
    className: "KeyListResult",
    modelProperties: {
      keys: {
        serializedName: "keys",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Key"
            }
          }
        }
      }
    }
  }
};

export const AutomationAccountUpdateParameters: msRest.CompositeMapper = {
  serializedName: "AutomationAccountUpdateParameters",
  type: {
    name: "Composite",
    className: "AutomationAccountUpdateParameters",
    modelProperties: {
      sku: {
        serializedName: "properties.sku",
        type: {
          name: "Composite",
          className: "Sku"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      location: {
        serializedName: "location",
        type: {
          name: "String"
        }
      },
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const ProxyResource: msRest.CompositeMapper = {
  serializedName: "ProxyResource",
  type: {
    name: "Composite",
    className: "ProxyResource",
    modelProperties: {
      ...Resource.type.modelProperties
    }
  }
};

export const ErrorResponse: msRest.CompositeMapper = {
  serializedName: "ErrorResponse",
  type: {
    name: "Composite",
    className: "ErrorResponse",
    modelProperties: {
      code: {
        serializedName: "code",
        type: {
          name: "String"
        }
      },
      message: {
        serializedName: "message",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const CertificateCreateOrUpdateParameters: msRest.CompositeMapper = {
  serializedName: "CertificateCreateOrUpdateParameters",
  type: {
    name: "Composite",
    className: "CertificateCreateOrUpdateParameters",
    modelProperties: {
      name: {
        required: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      base64Value: {
        required: true,
        serializedName: "properties.base64Value",
        type: {
          name: "String"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      thumbprint: {
        serializedName: "properties.thumbprint",
        type: {
          name: "String"
        }
      },
      isExportable: {
        nullable: false,
        serializedName: "properties.isExportable",
        type: {
          name: "Boolean"
        }
      }
    }
  }
};

export const Certificate: msRest.CompositeMapper = {
  serializedName: "Certificate",
  type: {
    name: "Composite",
    className: "Certificate",
    modelProperties: {
      ...ProxyResource.type.modelProperties,
      thumbprint: {
        readOnly: true,
        serializedName: "properties.thumbprint",
        type: {
          name: "String"
        }
      },
      expiryTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.expiryTime",
        type: {
          name: "DateTime"
        }
      },
      isExportable: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.isExportable",
        type: {
          name: "Boolean"
        }
      },
      creationTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const CertificateUpdateParameters: msRest.CompositeMapper = {
  serializedName: "CertificateUpdateParameters",
  type: {
    name: "Composite",
    className: "CertificateUpdateParameters",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ConnectionTypeAssociationProperty: msRest.CompositeMapper = {
  serializedName: "ConnectionTypeAssociationProperty",
  type: {
    name: "Composite",
    className: "ConnectionTypeAssociationProperty",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ConnectionCreateOrUpdateParameters: msRest.CompositeMapper = {
  serializedName: "ConnectionCreateOrUpdateParameters",
  type: {
    name: "Composite",
    className: "ConnectionCreateOrUpdateParameters",
    modelProperties: {
      name: {
        required: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      connectionType: {
        required: true,
        serializedName: "properties.connectionType",
        type: {
          name: "Composite",
          className: "ConnectionTypeAssociationProperty"
        }
      },
      fieldDefinitionValues: {
        serializedName: "properties.fieldDefinitionValues",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const Connection: msRest.CompositeMapper = {
  serializedName: "Connection",
  type: {
    name: "Composite",
    className: "Connection",
    modelProperties: {
      ...ProxyResource.type.modelProperties,
      connectionType: {
        serializedName: "properties.connectionType",
        type: {
          name: "Composite",
          className: "ConnectionTypeAssociationProperty"
        }
      },
      fieldDefinitionValues: {
        readOnly: true,
        serializedName: "properties.fieldDefinitionValues",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      },
      creationTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ConnectionUpdateParameters: msRest.CompositeMapper = {
  serializedName: "ConnectionUpdateParameters",
  type: {
    name: "Composite",
    className: "ConnectionUpdateParameters",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      fieldDefinitionValues: {
        serializedName: "properties.fieldDefinitionValues",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const FieldDefinition: msRest.CompositeMapper = {
  serializedName: "FieldDefinition",
  type: {
    name: "Composite",
    className: "FieldDefinition",
    modelProperties: {
      isEncrypted: {
        serializedName: "isEncrypted",
        type: {
          name: "Boolean"
        }
      },
      isOptional: {
        serializedName: "isOptional",
        type: {
          name: "Boolean"
        }
      },
      type: {
        required: true,
        serializedName: "type",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ConnectionType: msRest.CompositeMapper = {
  serializedName: "ConnectionType",
  type: {
    name: "Composite",
    className: "ConnectionType",
    modelProperties: {
      id: {
        readOnly: true,
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      name: {
        readOnly: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      type: {
        readOnly: true,
        serializedName: "type",
        type: {
          name: "String"
        }
      },
      isGlobal: {
        serializedName: "properties.isGlobal",
        type: {
          name: "Boolean"
        }
      },
      fieldDefinitions: {
        readOnly: true,
        serializedName: "properties.fieldDefinitions",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "Composite",
              className: "FieldDefinition"
            }
          }
        }
      },
      creationTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ConnectionTypeCreateOrUpdateParameters: msRest.CompositeMapper = {
  serializedName: "ConnectionTypeCreateOrUpdateParameters",
  type: {
    name: "Composite",
    className: "ConnectionTypeCreateOrUpdateParameters",
    modelProperties: {
      name: {
        required: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      isGlobal: {
        serializedName: "properties.isGlobal",
        type: {
          name: "Boolean"
        }
      },
      fieldDefinitions: {
        required: true,
        serializedName: "properties.fieldDefinitions",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "Composite",
              className: "FieldDefinition"
            }
          }
        }
      }
    }
  }
};

export const CredentialCreateOrUpdateParameters: msRest.CompositeMapper = {
  serializedName: "CredentialCreateOrUpdateParameters",
  type: {
    name: "Composite",
    className: "CredentialCreateOrUpdateParameters",
    modelProperties: {
      name: {
        required: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      userName: {
        required: true,
        serializedName: "properties.userName",
        type: {
          name: "String"
        }
      },
      password: {
        required: true,
        serializedName: "properties.password",
        type: {
          name: "String"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const Credential: msRest.CompositeMapper = {
  serializedName: "Credential",
  type: {
    name: "Composite",
    className: "Credential",
    modelProperties: {
      ...ProxyResource.type.modelProperties,
      userName: {
        readOnly: true,
        serializedName: "properties.userName",
        type: {
          name: "String"
        }
      },
      creationTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const CredentialUpdateParameters: msRest.CompositeMapper = {
  serializedName: "CredentialUpdateParameters",
  type: {
    name: "Composite",
    className: "CredentialUpdateParameters",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      userName: {
        serializedName: "properties.userName",
        type: {
          name: "String"
        }
      },
      password: {
        serializedName: "properties.password",
        type: {
          name: "String"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ContentHash: msRest.CompositeMapper = {
  serializedName: "ContentHash",
  type: {
    name: "Composite",
    className: "ContentHash",
    modelProperties: {
      algorithm: {
        required: true,
        serializedName: "algorithm",
        type: {
          name: "String"
        }
      },
      value: {
        required: true,
        serializedName: "value",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ContentSource: msRest.CompositeMapper = {
  serializedName: "ContentSource",
  type: {
    name: "Composite",
    className: "ContentSource",
    modelProperties: {
      hash: {
        serializedName: "hash",
        type: {
          name: "Composite",
          className: "ContentHash"
        }
      },
      type: {
        serializedName: "type",
        type: {
          name: "String"
        }
      },
      value: {
        serializedName: "value",
        type: {
          name: "String"
        }
      },
      version: {
        serializedName: "version",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DscConfigurationParameter: msRest.CompositeMapper = {
  serializedName: "DscConfigurationParameter",
  type: {
    name: "Composite",
    className: "DscConfigurationParameter",
    modelProperties: {
      type: {
        serializedName: "type",
        type: {
          name: "String"
        }
      },
      isMandatory: {
        serializedName: "isMandatory",
        type: {
          name: "Boolean"
        }
      },
      position: {
        serializedName: "position",
        type: {
          name: "Number"
        }
      },
      defaultValue: {
        serializedName: "defaultValue",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DscConfigurationCreateOrUpdateParameters: msRest.CompositeMapper = {
  serializedName: "DscConfigurationCreateOrUpdateParameters",
  type: {
    name: "Composite",
    className: "DscConfigurationCreateOrUpdateParameters",
    modelProperties: {
      logVerbose: {
        serializedName: "properties.logVerbose",
        type: {
          name: "Boolean"
        }
      },
      logProgress: {
        serializedName: "properties.logProgress",
        type: {
          name: "Boolean"
        }
      },
      source: {
        required: true,
        serializedName: "properties.source",
        type: {
          name: "Composite",
          className: "ContentSource"
        }
      },
      parameters: {
        serializedName: "properties.parameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "Composite",
              className: "DscConfigurationParameter"
            }
          }
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      location: {
        serializedName: "location",
        type: {
          name: "String"
        }
      },
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const DscConfiguration: msRest.CompositeMapper = {
  serializedName: "DscConfiguration",
  type: {
    name: "Composite",
    className: "DscConfiguration",
    modelProperties: {
      ...TrackedResource.type.modelProperties,
      provisioningState: {
        serializedName: "properties.provisioningState",
        type: {
          name: "Enum",
          allowedValues: [
            "Succeeded"
          ]
        }
      },
      jobCount: {
        serializedName: "properties.jobCount",
        type: {
          name: "Number"
        }
      },
      parameters: {
        serializedName: "properties.parameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "Composite",
              className: "DscConfigurationParameter"
            }
          }
        }
      },
      source: {
        serializedName: "properties.source",
        type: {
          name: "Composite",
          className: "ContentSource"
        }
      },
      state: {
        serializedName: "properties.state",
        type: {
          name: "String"
        }
      },
      logVerbose: {
        serializedName: "properties.logVerbose",
        type: {
          name: "Boolean"
        }
      },
      creationTime: {
        nullable: false,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      nodeConfigurationCount: {
        nullable: false,
        serializedName: "properties.nodeConfigurationCount",
        type: {
          name: "Number"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      etag: {
        serializedName: "etag",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DscConfigurationUpdateParameters: msRest.CompositeMapper = {
  serializedName: "DscConfigurationUpdateParameters",
  type: {
    name: "Composite",
    className: "DscConfigurationUpdateParameters",
    modelProperties: {
      logVerbose: {
        serializedName: "properties.logVerbose",
        type: {
          name: "Boolean"
        }
      },
      logProgress: {
        serializedName: "properties.logProgress",
        type: {
          name: "Boolean"
        }
      },
      source: {
        required: true,
        serializedName: "properties.source",
        type: {
          name: "Composite",
          className: "ContentSource"
        }
      },
      parameters: {
        serializedName: "properties.parameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "Composite",
              className: "DscConfigurationParameter"
            }
          }
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const RunAsCredentialAssociationProperty: msRest.CompositeMapper = {
  serializedName: "RunAsCredentialAssociationProperty",
  type: {
    name: "Composite",
    className: "RunAsCredentialAssociationProperty",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const HybridRunbookWorker: msRest.CompositeMapper = {
  serializedName: "HybridRunbookWorker",
  type: {
    name: "Composite",
    className: "HybridRunbookWorker",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      ip: {
        serializedName: "ip",
        type: {
          name: "String"
        }
      },
      registrationTime: {
        nullable: false,
        serializedName: "registrationTime",
        type: {
          name: "DateTime"
        }
      },
      lastSeenDateTime: {
        nullable: false,
        serializedName: "lastSeenDateTime",
        type: {
          name: "DateTime"
        }
      }
    }
  }
};

export const HybridRunbookWorkerGroup: msRest.CompositeMapper = {
  serializedName: "HybridRunbookWorkerGroup",
  type: {
    name: "Composite",
    className: "HybridRunbookWorkerGroup",
    modelProperties: {
      id: {
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      hybridRunbookWorkers: {
        serializedName: "hybridRunbookWorkers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "HybridRunbookWorker"
            }
          }
        }
      },
      credential: {
        serializedName: "credential",
        type: {
          name: "Composite",
          className: "RunAsCredentialAssociationProperty"
        }
      },
      groupType: {
        serializedName: "groupType",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const HybridRunbookWorkerGroupUpdateParameters: msRest.CompositeMapper = {
  serializedName: "HybridRunbookWorkerGroupUpdateParameters",
  type: {
    name: "Composite",
    className: "HybridRunbookWorkerGroupUpdateParameters",
    modelProperties: {
      credential: {
        serializedName: "credential",
        type: {
          name: "Composite",
          className: "RunAsCredentialAssociationProperty"
        }
      }
    }
  }
};

export const ScheduleAssociationProperty: msRest.CompositeMapper = {
  serializedName: "ScheduleAssociationProperty",
  type: {
    name: "Composite",
    className: "ScheduleAssociationProperty",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const RunbookAssociationProperty: msRest.CompositeMapper = {
  serializedName: "RunbookAssociationProperty",
  type: {
    name: "Composite",
    className: "RunbookAssociationProperty",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const JobSchedule: msRest.CompositeMapper = {
  serializedName: "JobSchedule",
  type: {
    name: "Composite",
    className: "JobSchedule",
    modelProperties: {
      id: {
        readOnly: true,
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      name: {
        readOnly: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      type: {
        readOnly: true,
        serializedName: "type",
        type: {
          name: "String"
        }
      },
      jobScheduleId: {
        serializedName: "properties.jobScheduleId",
        type: {
          name: "String"
        }
      },
      schedule: {
        serializedName: "properties.schedule",
        type: {
          name: "Composite",
          className: "ScheduleAssociationProperty"
        }
      },
      runbook: {
        serializedName: "properties.runbook",
        type: {
          name: "Composite",
          className: "RunbookAssociationProperty"
        }
      },
      runOn: {
        serializedName: "properties.runOn",
        type: {
          name: "String"
        }
      },
      parameters: {
        serializedName: "properties.parameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const JobScheduleCreateParameters: msRest.CompositeMapper = {
  serializedName: "JobScheduleCreateParameters",
  type: {
    name: "Composite",
    className: "JobScheduleCreateParameters",
    modelProperties: {
      schedule: {
        required: true,
        serializedName: "properties.schedule",
        type: {
          name: "Composite",
          className: "ScheduleAssociationProperty"
        }
      },
      runbook: {
        required: true,
        serializedName: "properties.runbook",
        type: {
          name: "Composite",
          className: "RunbookAssociationProperty"
        }
      },
      runOn: {
        serializedName: "properties.runOn",
        type: {
          name: "String"
        }
      },
      parameters: {
        serializedName: "properties.parameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const LinkedWorkspace: msRest.CompositeMapper = {
  serializedName: "LinkedWorkspace",
  type: {
    name: "Composite",
    className: "LinkedWorkspace",
    modelProperties: {
      id: {
        readOnly: true,
        serializedName: "id",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ActivityParameterValidationSet: msRest.CompositeMapper = {
  serializedName: "ActivityParameterValidationSet",
  type: {
    name: "Composite",
    className: "ActivityParameterValidationSet",
    modelProperties: {
      memberValue: {
        serializedName: "memberValue",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ActivityParameter: msRest.CompositeMapper = {
  serializedName: "ActivityParameter",
  type: {
    name: "Composite",
    className: "ActivityParameter",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      type: {
        serializedName: "type",
        type: {
          name: "String"
        }
      },
      isMandatory: {
        serializedName: "isMandatory",
        type: {
          name: "Boolean"
        }
      },
      isDynamic: {
        serializedName: "isDynamic",
        type: {
          name: "Boolean"
        }
      },
      position: {
        serializedName: "position",
        type: {
          name: "Number"
        }
      },
      valueFromPipeline: {
        serializedName: "valueFromPipeline",
        type: {
          name: "Boolean"
        }
      },
      valueFromPipelineByPropertyName: {
        serializedName: "valueFromPipelineByPropertyName",
        type: {
          name: "Boolean"
        }
      },
      valueFromRemainingArguments: {
        serializedName: "valueFromRemainingArguments",
        type: {
          name: "Boolean"
        }
      },
      description: {
        serializedName: "description",
        type: {
          name: "String"
        }
      },
      validationSet: {
        serializedName: "validationSet",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ActivityParameterValidationSet"
            }
          }
        }
      }
    }
  }
};

export const ActivityParameterSet: msRest.CompositeMapper = {
  serializedName: "ActivityParameterSet",
  type: {
    name: "Composite",
    className: "ActivityParameterSet",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      parameters: {
        serializedName: "parameters",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ActivityParameter"
            }
          }
        }
      }
    }
  }
};

export const ActivityOutputType: msRest.CompositeMapper = {
  serializedName: "ActivityOutputType",
  type: {
    name: "Composite",
    className: "ActivityOutputType",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      type: {
        serializedName: "type",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const Activity: msRest.CompositeMapper = {
  serializedName: "Activity",
  type: {
    name: "Composite",
    className: "Activity",
    modelProperties: {
      id: {
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      name: {
        readOnly: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      definition: {
        serializedName: "properties.definition",
        type: {
          name: "String"
        }
      },
      parameterSets: {
        serializedName: "properties.parameterSets",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ActivityParameterSet"
            }
          }
        }
      },
      outputTypes: {
        serializedName: "properties.outputTypes",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ActivityOutputType"
            }
          }
        }
      },
      creationTime: {
        nullable: false,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ModuleErrorInfo: msRest.CompositeMapper = {
  serializedName: "ModuleErrorInfo",
  type: {
    name: "Composite",
    className: "ModuleErrorInfo",
    modelProperties: {
      code: {
        serializedName: "code",
        type: {
          name: "String"
        }
      },
      message: {
        serializedName: "message",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ContentLink: msRest.CompositeMapper = {
  serializedName: "ContentLink",
  type: {
    name: "Composite",
    className: "ContentLink",
    modelProperties: {
      uri: {
        serializedName: "uri",
        type: {
          name: "String"
        }
      },
      contentHash: {
        serializedName: "contentHash",
        type: {
          name: "Composite",
          className: "ContentHash"
        }
      },
      version: {
        serializedName: "version",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const Module: msRest.CompositeMapper = {
  serializedName: "Module",
  type: {
    name: "Composite",
    className: "Module",
    modelProperties: {
      ...TrackedResource.type.modelProperties,
      isGlobal: {
        serializedName: "properties.isGlobal",
        type: {
          name: "Boolean"
        }
      },
      version: {
        serializedName: "properties.version",
        type: {
          name: "String"
        }
      },
      sizeInBytes: {
        serializedName: "properties.sizeInBytes",
        type: {
          name: "Number"
        }
      },
      activityCount: {
        serializedName: "properties.activityCount",
        type: {
          name: "Number"
        }
      },
      provisioningState: {
        serializedName: "properties.provisioningState",
        type: {
          name: "Enum",
          allowedValues: [
            "Created",
            "Creating",
            "StartingImportModuleRunbook",
            "RunningImportModuleRunbook",
            "ContentRetrieved",
            "ContentDownloaded",
            "ContentValidated",
            "ConnectionTypeImported",
            "ContentStored",
            "ModuleDataStored",
            "ActivitiesStored",
            "ModuleImportRunbookComplete",
            "Succeeded",
            "Failed",
            "Cancelled",
            "Updating"
          ]
        }
      },
      contentLink: {
        serializedName: "properties.contentLink",
        type: {
          name: "Composite",
          className: "ContentLink"
        }
      },
      error: {
        serializedName: "properties.error",
        type: {
          name: "Composite",
          className: "ModuleErrorInfo"
        }
      },
      creationTime: {
        nullable: false,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      isComposite: {
        serializedName: "properties.isComposite",
        type: {
          name: "Boolean"
        }
      },
      etag: {
        serializedName: "etag",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ModuleCreateOrUpdateParameters: msRest.CompositeMapper = {
  serializedName: "ModuleCreateOrUpdateParameters",
  type: {
    name: "Composite",
    className: "ModuleCreateOrUpdateParameters",
    modelProperties: {
      contentLink: {
        required: true,
        serializedName: "properties.contentLink",
        type: {
          name: "Composite",
          className: "ContentLink"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      location: {
        serializedName: "location",
        type: {
          name: "String"
        }
      },
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const ModuleUpdateParameters: msRest.CompositeMapper = {
  serializedName: "ModuleUpdateParameters",
  type: {
    name: "Composite",
    className: "ModuleUpdateParameters",
    modelProperties: {
      contentLink: {
        serializedName: "properties.contentLink",
        type: {
          name: "Composite",
          className: "ContentLink"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      location: {
        serializedName: "location",
        type: {
          name: "String"
        }
      },
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const TypeField: msRest.CompositeMapper = {
  serializedName: "TypeField",
  type: {
    name: "Composite",
    className: "TypeField",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      type: {
        serializedName: "type",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const AdvancedScheduleMonthlyOccurrence: msRest.CompositeMapper = {
  serializedName: "AdvancedScheduleMonthlyOccurrence",
  type: {
    name: "Composite",
    className: "AdvancedScheduleMonthlyOccurrence",
    modelProperties: {
      occurrence: {
        serializedName: "occurrence",
        type: {
          name: "Number"
        }
      },
      day: {
        serializedName: "day",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const AdvancedSchedule: msRest.CompositeMapper = {
  serializedName: "AdvancedSchedule",
  type: {
    name: "Composite",
    className: "AdvancedSchedule",
    modelProperties: {
      weekDays: {
        serializedName: "weekDays",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      monthDays: {
        serializedName: "monthDays",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Number"
            }
          }
        }
      },
      monthlyOccurrences: {
        serializedName: "monthlyOccurrences",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "AdvancedScheduleMonthlyOccurrence"
            }
          }
        }
      }
    }
  }
};

export const ScheduleCreateOrUpdateParameters: msRest.CompositeMapper = {
  serializedName: "ScheduleCreateOrUpdateParameters",
  type: {
    name: "Composite",
    className: "ScheduleCreateOrUpdateParameters",
    modelProperties: {
      name: {
        required: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      startTime: {
        required: true,
        nullable: false,
        serializedName: "properties.startTime",
        type: {
          name: "DateTime"
        }
      },
      expiryTime: {
        nullable: true,
        serializedName: "properties.expiryTime",
        type: {
          name: "DateTime"
        }
      },
      interval: {
        serializedName: "properties.interval",
        type: {
          name: "Object"
        }
      },
      frequency: {
        required: true,
        serializedName: "properties.frequency",
        type: {
          name: "String"
        }
      },
      timeZone: {
        serializedName: "properties.timeZone",
        type: {
          name: "String"
        }
      },
      advancedSchedule: {
        serializedName: "properties.advancedSchedule",
        type: {
          name: "Composite",
          className: "AdvancedSchedule"
        }
      }
    }
  }
};

export const ScheduleProperties: msRest.CompositeMapper = {
  serializedName: "ScheduleProperties",
  type: {
    name: "Composite",
    className: "ScheduleProperties",
    modelProperties: {
      startTime: {
        nullable: false,
        serializedName: "startTime",
        type: {
          name: "DateTime"
        }
      },
      startTimeOffsetMinutes: {
        nullable: false,
        readOnly: true,
        serializedName: "startTimeOffsetMinutes",
        type: {
          name: "Number"
        }
      },
      expiryTime: {
        nullable: true,
        serializedName: "expiryTime",
        type: {
          name: "DateTime"
        }
      },
      expiryTimeOffsetMinutes: {
        nullable: false,
        serializedName: "expiryTimeOffsetMinutes",
        type: {
          name: "Number"
        }
      },
      isEnabled: {
        serializedName: "isEnabled",
        defaultValue: false,
        type: {
          name: "Boolean"
        }
      },
      nextRun: {
        nullable: true,
        serializedName: "nextRun",
        type: {
          name: "DateTime"
        }
      },
      nextRunOffsetMinutes: {
        nullable: false,
        serializedName: "nextRunOffsetMinutes",
        type: {
          name: "Number"
        }
      },
      interval: {
        serializedName: "interval",
        type: {
          name: "Number"
        }
      },
      frequency: {
        serializedName: "frequency",
        type: {
          name: "String"
        }
      },
      timeZone: {
        serializedName: "timeZone",
        type: {
          name: "String"
        }
      },
      advancedSchedule: {
        serializedName: "advancedSchedule",
        type: {
          name: "Composite",
          className: "AdvancedSchedule"
        }
      },
      creationTime: {
        nullable: false,
        serializedName: "creationTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        serializedName: "lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      description: {
        serializedName: "description",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const Schedule: msRest.CompositeMapper = {
  serializedName: "Schedule",
  type: {
    name: "Composite",
    className: "Schedule",
    modelProperties: {
      ...ProxyResource.type.modelProperties,
      startTime: {
        nullable: false,
        serializedName: "properties.startTime",
        type: {
          name: "DateTime"
        }
      },
      startTimeOffsetMinutes: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.startTimeOffsetMinutes",
        type: {
          name: "Number"
        }
      },
      expiryTime: {
        nullable: true,
        serializedName: "properties.expiryTime",
        type: {
          name: "DateTime"
        }
      },
      expiryTimeOffsetMinutes: {
        nullable: false,
        serializedName: "properties.expiryTimeOffsetMinutes",
        type: {
          name: "Number"
        }
      },
      isEnabled: {
        serializedName: "properties.isEnabled",
        defaultValue: false,
        type: {
          name: "Boolean"
        }
      },
      nextRun: {
        nullable: true,
        serializedName: "properties.nextRun",
        type: {
          name: "DateTime"
        }
      },
      nextRunOffsetMinutes: {
        nullable: false,
        serializedName: "properties.nextRunOffsetMinutes",
        type: {
          name: "Number"
        }
      },
      interval: {
        serializedName: "properties.interval",
        type: {
          name: "Number"
        }
      },
      frequency: {
        serializedName: "properties.frequency",
        type: {
          name: "String"
        }
      },
      timeZone: {
        serializedName: "properties.timeZone",
        type: {
          name: "String"
        }
      },
      advancedSchedule: {
        serializedName: "properties.advancedSchedule",
        type: {
          name: "Composite",
          className: "AdvancedSchedule"
        }
      },
      creationTime: {
        nullable: false,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ScheduleUpdateParameters: msRest.CompositeMapper = {
  serializedName: "ScheduleUpdateParameters",
  type: {
    name: "Composite",
    className: "ScheduleUpdateParameters",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      isEnabled: {
        serializedName: "properties.isEnabled",
        type: {
          name: "Boolean"
        }
      }
    }
  }
};

export const VariableCreateOrUpdateParameters: msRest.CompositeMapper = {
  serializedName: "VariableCreateOrUpdateParameters",
  type: {
    name: "Composite",
    className: "VariableCreateOrUpdateParameters",
    modelProperties: {
      name: {
        required: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      value: {
        serializedName: "properties.value",
        type: {
          name: "String"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      isEncrypted: {
        serializedName: "properties.isEncrypted",
        type: {
          name: "Boolean"
        }
      }
    }
  }
};

export const Variable: msRest.CompositeMapper = {
  serializedName: "Variable",
  type: {
    name: "Composite",
    className: "Variable",
    modelProperties: {
      ...ProxyResource.type.modelProperties,
      value: {
        serializedName: "properties.value",
        type: {
          name: "String"
        }
      },
      isEncrypted: {
        nullable: true,
        serializedName: "properties.isEncrypted",
        type: {
          name: "Boolean"
        }
      },
      creationTime: {
        nullable: false,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const VariableUpdateParameters: msRest.CompositeMapper = {
  serializedName: "VariableUpdateParameters",
  type: {
    name: "Composite",
    className: "VariableUpdateParameters",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      value: {
        serializedName: "properties.value",
        type: {
          name: "String"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const Webhook: msRest.CompositeMapper = {
  serializedName: "Webhook",
  type: {
    name: "Composite",
    className: "Webhook",
    modelProperties: {
      ...ProxyResource.type.modelProperties,
      isEnabled: {
        serializedName: "properties.isEnabled",
        defaultValue: false,
        type: {
          name: "Boolean"
        }
      },
      uri: {
        serializedName: "properties.uri",
        type: {
          name: "String"
        }
      },
      expiryTime: {
        nullable: false,
        serializedName: "properties.expiryTime",
        type: {
          name: "DateTime"
        }
      },
      lastInvokedTime: {
        nullable: true,
        serializedName: "properties.lastInvokedTime",
        type: {
          name: "DateTime"
        }
      },
      parameters: {
        serializedName: "properties.parameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      },
      runbook: {
        serializedName: "properties.runbook",
        type: {
          name: "Composite",
          className: "RunbookAssociationProperty"
        }
      },
      runOn: {
        serializedName: "properties.runOn",
        type: {
          name: "String"
        }
      },
      creationTime: {
        nullable: false,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedBy: {
        serializedName: "properties.lastModifiedBy",
        type: {
          name: "String"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const WebhookUpdateParameters: msRest.CompositeMapper = {
  serializedName: "WebhookUpdateParameters",
  type: {
    name: "Composite",
    className: "WebhookUpdateParameters",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      isEnabled: {
        serializedName: "properties.isEnabled",
        type: {
          name: "Boolean"
        }
      },
      runOn: {
        serializedName: "properties.runOn",
        type: {
          name: "String"
        }
      },
      parameters: {
        serializedName: "properties.parameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const WebhookCreateOrUpdateParameters: msRest.CompositeMapper = {
  serializedName: "WebhookCreateOrUpdateParameters",
  type: {
    name: "Composite",
    className: "WebhookCreateOrUpdateParameters",
    modelProperties: {
      name: {
        required: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      isEnabled: {
        serializedName: "properties.isEnabled",
        type: {
          name: "Boolean"
        }
      },
      uri: {
        serializedName: "properties.uri",
        type: {
          name: "String"
        }
      },
      expiryTime: {
        nullable: false,
        serializedName: "properties.expiryTime",
        type: {
          name: "DateTime"
        }
      },
      parameters: {
        serializedName: "properties.parameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      },
      runbook: {
        serializedName: "properties.runbook",
        type: {
          name: "Composite",
          className: "RunbookAssociationProperty"
        }
      },
      runOn: {
        serializedName: "properties.runOn",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const Watcher: msRest.CompositeMapper = {
  serializedName: "Watcher",
  type: {
    name: "Composite",
    className: "Watcher",
    modelProperties: {
      ...TrackedResource.type.modelProperties,
      executionFrequencyInSeconds: {
        serializedName: "properties.executionFrequencyInSeconds",
        type: {
          name: "Number"
        }
      },
      scriptName: {
        serializedName: "properties.scriptName",
        type: {
          name: "String"
        }
      },
      scriptParameters: {
        serializedName: "properties.scriptParameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      },
      scriptRunOn: {
        serializedName: "properties.scriptRunOn",
        type: {
          name: "String"
        }
      },
      status: {
        readOnly: true,
        serializedName: "properties.status",
        type: {
          name: "String"
        }
      },
      creationTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedBy: {
        readOnly: true,
        serializedName: "properties.lastModifiedBy",
        type: {
          name: "String"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      etag: {
        serializedName: "etag",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const WatcherUpdateParameters: msRest.CompositeMapper = {
  serializedName: "WatcherUpdateParameters",
  type: {
    name: "Composite",
    className: "WatcherUpdateParameters",
    modelProperties: {
      executionFrequencyInSeconds: {
        serializedName: "properties.executionFrequencyInSeconds",
        type: {
          name: "Number"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const WindowsProperties: msRest.CompositeMapper = {
  serializedName: "WindowsProperties",
  type: {
    name: "Composite",
    className: "WindowsProperties",
    modelProperties: {
      includedUpdateClassifications: {
        serializedName: "includedUpdateClassifications",
        type: {
          name: "String"
        }
      },
      excludedKbNumbers: {
        serializedName: "excludedKbNumbers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      includedKbNumbers: {
        serializedName: "includedKbNumbers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      rebootSetting: {
        serializedName: "rebootSetting",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const LinuxProperties: msRest.CompositeMapper = {
  serializedName: "LinuxProperties",
  type: {
    name: "Composite",
    className: "LinuxProperties",
    modelProperties: {
      includedPackageClassifications: {
        serializedName: "includedPackageClassifications",
        type: {
          name: "String"
        }
      },
      excludedPackageNameMasks: {
        serializedName: "excludedPackageNameMasks",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      includedPackageNameMasks: {
        serializedName: "includedPackageNameMasks",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      rebootSetting: {
        serializedName: "rebootSetting",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const TagSettingsProperties: msRest.CompositeMapper = {
  serializedName: "TagSettingsProperties",
  type: {
    name: "Composite",
    className: "TagSettingsProperties",
    modelProperties: {
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "Sequence",
              element: {
                type: {
                  name: "String"
                }
              }
            }
          }
        }
      },
      filterOperator: {
        serializedName: "filterOperator",
        type: {
          name: "Enum",
          allowedValues: [
            "All",
            "Any"
          ]
        }
      }
    }
  }
};

export const AzureQueryProperties: msRest.CompositeMapper = {
  serializedName: "AzureQueryProperties",
  type: {
    name: "Composite",
    className: "AzureQueryProperties",
    modelProperties: {
      scope: {
        serializedName: "scope",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      locations: {
        serializedName: "locations",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      tagSettings: {
        serializedName: "tagSettings",
        type: {
          name: "Composite",
          className: "TagSettingsProperties"
        }
      }
    }
  }
};

export const NonAzureQueryProperties: msRest.CompositeMapper = {
  serializedName: "NonAzureQueryProperties",
  type: {
    name: "Composite",
    className: "NonAzureQueryProperties",
    modelProperties: {
      functionAlias: {
        serializedName: "functionAlias",
        type: {
          name: "String"
        }
      },
      workspaceId: {
        serializedName: "workspaceId",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const TargetProperties: msRest.CompositeMapper = {
  serializedName: "TargetProperties",
  type: {
    name: "Composite",
    className: "TargetProperties",
    modelProperties: {
      azureQueries: {
        serializedName: "azureQueries",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "AzureQueryProperties"
            }
          }
        }
      },
      nonAzureQueries: {
        serializedName: "nonAzureQueries",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "NonAzureQueryProperties"
            }
          }
        }
      }
    }
  }
};

export const UpdateConfiguration: msRest.CompositeMapper = {
  serializedName: "updateConfiguration",
  type: {
    name: "Composite",
    className: "UpdateConfiguration",
    modelProperties: {
      operatingSystem: {
        required: true,
        serializedName: "operatingSystem",
        type: {
          name: "Enum",
          allowedValues: [
            "Windows",
            "Linux"
          ]
        }
      },
      windows: {
        serializedName: "windows",
        type: {
          name: "Composite",
          className: "WindowsProperties"
        }
      },
      linux: {
        serializedName: "linux",
        type: {
          name: "Composite",
          className: "LinuxProperties"
        }
      },
      duration: {
        serializedName: "duration",
        type: {
          name: "TimeSpan"
        }
      },
      azureVirtualMachines: {
        serializedName: "azureVirtualMachines",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      nonAzureComputerNames: {
        serializedName: "nonAzureComputerNames",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      targets: {
        serializedName: "targets",
        type: {
          name: "Composite",
          className: "TargetProperties"
        }
      }
    }
  }
};

export const TaskProperties: msRest.CompositeMapper = {
  serializedName: "taskProperties",
  type: {
    name: "Composite",
    className: "TaskProperties",
    modelProperties: {
      parameters: {
        serializedName: "parameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      },
      source: {
        serializedName: "source",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SoftwareUpdateConfigurationTasks: msRest.CompositeMapper = {
  serializedName: "softwareUpdateConfigurationTasks",
  type: {
    name: "Composite",
    className: "SoftwareUpdateConfigurationTasks",
    modelProperties: {
      preTask: {
        serializedName: "preTask",
        type: {
          name: "Composite",
          className: "TaskProperties"
        }
      },
      postTask: {
        serializedName: "postTask",
        type: {
          name: "Composite",
          className: "TaskProperties"
        }
      }
    }
  }
};

export const SoftwareUpdateConfiguration: msRest.CompositeMapper = {
  serializedName: "softwareUpdateConfiguration",
  type: {
    name: "Composite",
    className: "SoftwareUpdateConfiguration",
    modelProperties: {
      name: {
        readOnly: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      id: {
        readOnly: true,
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      type: {
        readOnly: true,
        serializedName: "type",
        type: {
          name: "String"
        }
      },
      updateConfiguration: {
        required: true,
        serializedName: "properties.updateConfiguration",
        type: {
          name: "Composite",
          className: "UpdateConfiguration"
        }
      },
      scheduleInfo: {
        required: true,
        serializedName: "properties.scheduleInfo",
        type: {
          name: "Composite",
          className: "ScheduleProperties"
        }
      },
      provisioningState: {
        readOnly: true,
        serializedName: "properties.provisioningState",
        type: {
          name: "String"
        }
      },
      error: {
        serializedName: "properties.error",
        type: {
          name: "Composite",
          className: "ErrorResponse"
        }
      },
      creationTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      createdBy: {
        readOnly: true,
        serializedName: "properties.createdBy",
        type: {
          name: "String"
        }
      },
      lastModifiedTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedBy: {
        readOnly: true,
        serializedName: "properties.lastModifiedBy",
        type: {
          name: "String"
        }
      },
      tasks: {
        serializedName: "properties.tasks",
        type: {
          name: "Composite",
          className: "SoftwareUpdateConfigurationTasks"
        }
      }
    }
  }
};

export const CollectionItemUpdateConfiguration: msRest.CompositeMapper = {
  serializedName: "collectionItemUpdateConfiguration",
  type: {
    name: "Composite",
    className: "CollectionItemUpdateConfiguration",
    modelProperties: {
      azureVirtualMachines: {
        serializedName: "azureVirtualMachines",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      duration: {
        serializedName: "duration",
        type: {
          name: "TimeSpan"
        }
      }
    }
  }
};

export const SoftwareUpdateConfigurationCollectionItem: msRest.CompositeMapper = {
  serializedName: "softwareUpdateConfigurationCollectionItem",
  type: {
    name: "Composite",
    className: "SoftwareUpdateConfigurationCollectionItem",
    modelProperties: {
      name: {
        readOnly: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      id: {
        readOnly: true,
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      updateConfiguration: {
        serializedName: "properties.updateConfiguration",
        type: {
          name: "Composite",
          className: "CollectionItemUpdateConfiguration"
        }
      },
      frequency: {
        serializedName: "properties.frequency",
        type: {
          name: "String"
        }
      },
      startTime: {
        nullable: false,
        serializedName: "properties.startTime",
        type: {
          name: "DateTime"
        }
      },
      creationTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      provisioningState: {
        readOnly: true,
        serializedName: "properties.provisioningState",
        type: {
          name: "String"
        }
      },
      nextRun: {
        nullable: true,
        serializedName: "properties.nextRun",
        type: {
          name: "DateTime"
        }
      }
    }
  }
};

export const SoftwareUpdateConfigurationListResult: msRest.CompositeMapper = {
  serializedName: "softwareUpdateConfigurationListResult",
  type: {
    name: "Composite",
    className: "SoftwareUpdateConfigurationListResult",
    modelProperties: {
      value: {
        serializedName: "value",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "SoftwareUpdateConfigurationCollectionItem"
            }
          }
        }
      }
    }
  }
};

export const UpdateConfigurationNavigation: msRest.CompositeMapper = {
  serializedName: "updateConfigurationNavigation",
  type: {
    name: "Composite",
    className: "UpdateConfigurationNavigation",
    modelProperties: {
      name: {
        readOnly: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SoftareUpdateConfigurationRunTaskProperties: msRest.CompositeMapper = {
  serializedName: "softareUpdateConfigurationRunTaskProperties",
  type: {
    name: "Composite",
    className: "SoftareUpdateConfigurationRunTaskProperties",
    modelProperties: {
      status: {
        serializedName: "status",
        type: {
          name: "String"
        }
      },
      source: {
        serializedName: "source",
        type: {
          name: "String"
        }
      },
      jobId: {
        serializedName: "jobId",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SoftareUpdateConfigurationRunTasks: msRest.CompositeMapper = {
  serializedName: "softareUpdateConfigurationRunTasks",
  type: {
    name: "Composite",
    className: "SoftareUpdateConfigurationRunTasks",
    modelProperties: {
      preTask: {
        serializedName: "preTask",
        type: {
          name: "Composite",
          className: "SoftareUpdateConfigurationRunTaskProperties"
        }
      },
      postTask: {
        serializedName: "postTask",
        type: {
          name: "Composite",
          className: "SoftareUpdateConfigurationRunTaskProperties"
        }
      }
    }
  }
};

export const SoftwareUpdateConfigurationRun: msRest.CompositeMapper = {
  serializedName: "softwareUpdateConfigurationRun",
  type: {
    name: "Composite",
    className: "SoftwareUpdateConfigurationRun",
    modelProperties: {
      name: {
        readOnly: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      id: {
        readOnly: true,
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      softwareUpdateConfiguration: {
        serializedName: "properties.softwareUpdateConfiguration",
        type: {
          name: "Composite",
          className: "UpdateConfigurationNavigation"
        }
      },
      status: {
        readOnly: true,
        serializedName: "properties.status",
        type: {
          name: "String"
        }
      },
      configuredDuration: {
        readOnly: true,
        serializedName: "properties.configuredDuration",
        type: {
          name: "String"
        }
      },
      osType: {
        readOnly: true,
        serializedName: "properties.osType",
        type: {
          name: "String"
        }
      },
      startTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.startTime",
        type: {
          name: "DateTime"
        }
      },
      endTime: {
        nullable: true,
        readOnly: true,
        serializedName: "properties.endTime",
        type: {
          name: "DateTime"
        }
      },
      computerCount: {
        readOnly: true,
        serializedName: "properties.computerCount",
        type: {
          name: "Number"
        }
      },
      failedCount: {
        readOnly: true,
        serializedName: "properties.failedCount",
        type: {
          name: "Number"
        }
      },
      creationTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      createdBy: {
        readOnly: true,
        serializedName: "properties.createdBy",
        type: {
          name: "String"
        }
      },
      lastModifiedTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedBy: {
        readOnly: true,
        serializedName: "properties.lastModifiedBy",
        type: {
          name: "String"
        }
      },
      tasks: {
        serializedName: "properties.tasks",
        type: {
          name: "Composite",
          className: "SoftareUpdateConfigurationRunTasks"
        }
      }
    }
  }
};

export const SoftwareUpdateConfigurationRunListResult: msRest.CompositeMapper = {
  serializedName: "softwareUpdateConfigurationRunListResult",
  type: {
    name: "Composite",
    className: "SoftwareUpdateConfigurationRunListResult",
    modelProperties: {
      value: {
        serializedName: "value",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "SoftwareUpdateConfigurationRun"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const JobNavigation: msRest.CompositeMapper = {
  serializedName: "jobNavigation",
  type: {
    name: "Composite",
    className: "JobNavigation",
    modelProperties: {
      id: {
        readOnly: true,
        serializedName: "id",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SoftwareUpdateConfigurationMachineRun: msRest.CompositeMapper = {
  serializedName: "softwareUpdateConfigurationMachineRun",
  type: {
    name: "Composite",
    className: "SoftwareUpdateConfigurationMachineRun",
    modelProperties: {
      name: {
        readOnly: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      id: {
        readOnly: true,
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      targetComputer: {
        readOnly: true,
        serializedName: "properties.targetComputer",
        type: {
          name: "String"
        }
      },
      targetComputerType: {
        readOnly: true,
        serializedName: "properties.targetComputerType",
        type: {
          name: "String"
        }
      },
      softwareUpdateConfiguration: {
        serializedName: "properties.softwareUpdateConfiguration",
        type: {
          name: "Composite",
          className: "UpdateConfigurationNavigation"
        }
      },
      status: {
        readOnly: true,
        serializedName: "properties.status",
        type: {
          name: "String"
        }
      },
      osType: {
        readOnly: true,
        serializedName: "properties.osType",
        type: {
          name: "String"
        }
      },
      correlationId: {
        readOnly: true,
        serializedName: "properties.correlationId",
        type: {
          name: "Uuid"
        }
      },
      sourceComputerId: {
        readOnly: true,
        serializedName: "properties.sourceComputerId",
        type: {
          name: "Uuid"
        }
      },
      startTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.startTime",
        type: {
          name: "DateTime"
        }
      },
      endTime: {
        nullable: true,
        readOnly: true,
        serializedName: "properties.endTime",
        type: {
          name: "DateTime"
        }
      },
      configuredDuration: {
        readOnly: true,
        serializedName: "properties.configuredDuration",
        type: {
          name: "String"
        }
      },
      job: {
        serializedName: "properties.job",
        type: {
          name: "Composite",
          className: "JobNavigation"
        }
      },
      creationTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      createdBy: {
        readOnly: true,
        serializedName: "properties.createdBy",
        type: {
          name: "String"
        }
      },
      lastModifiedTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedBy: {
        readOnly: true,
        serializedName: "properties.lastModifiedBy",
        type: {
          name: "String"
        }
      },
      error: {
        serializedName: "properties.error",
        type: {
          name: "Composite",
          className: "ErrorResponse"
        }
      }
    }
  }
};

export const SoftwareUpdateConfigurationMachineRunListResult: msRest.CompositeMapper = {
  serializedName: "softwareUpdateConfigurationMachineRunListResult",
  type: {
    name: "Composite",
    className: "SoftwareUpdateConfigurationMachineRunListResult",
    modelProperties: {
      value: {
        serializedName: "value",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "SoftwareUpdateConfigurationMachineRun"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SourceControl: msRest.CompositeMapper = {
  serializedName: "SourceControl",
  type: {
    name: "Composite",
    className: "SourceControl",
    modelProperties: {
      ...ProxyResource.type.modelProperties,
      repoUrl: {
        serializedName: "properties.repoUrl",
        type: {
          name: "String"
        }
      },
      branch: {
        serializedName: "properties.branch",
        type: {
          name: "String"
        }
      },
      folderPath: {
        serializedName: "properties.folderPath",
        type: {
          name: "String"
        }
      },
      autoSync: {
        serializedName: "properties.autoSync",
        type: {
          name: "Boolean"
        }
      },
      publishRunbook: {
        serializedName: "properties.publishRunbook",
        type: {
          name: "Boolean"
        }
      },
      sourceType: {
        serializedName: "properties.sourceType",
        type: {
          name: "String"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      creationTime: {
        nullable: false,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      }
    }
  }
};

export const SourceControlSecurityTokenProperties: msRest.CompositeMapper = {
  serializedName: "SourceControlSecurityTokenProperties",
  type: {
    name: "Composite",
    className: "SourceControlSecurityTokenProperties",
    modelProperties: {
      accessToken: {
        serializedName: "accessToken",
        constraints: {
          MaxLength: 1024
        },
        type: {
          name: "String"
        }
      },
      refreshToken: {
        serializedName: "refreshToken",
        constraints: {
          MaxLength: 1024
        },
        type: {
          name: "String"
        }
      },
      tokenType: {
        serializedName: "tokenType",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SourceControlUpdateParameters: msRest.CompositeMapper = {
  serializedName: "SourceControlUpdateParameters",
  type: {
    name: "Composite",
    className: "SourceControlUpdateParameters",
    modelProperties: {
      branch: {
        serializedName: "properties.branch",
        type: {
          name: "String"
        }
      },
      folderPath: {
        serializedName: "properties.folderPath",
        type: {
          name: "String"
        }
      },
      autoSync: {
        serializedName: "properties.autoSync",
        type: {
          name: "Boolean"
        }
      },
      publishRunbook: {
        serializedName: "properties.publishRunbook",
        type: {
          name: "Boolean"
        }
      },
      securityToken: {
        serializedName: "properties.securityToken",
        type: {
          name: "Composite",
          className: "SourceControlSecurityTokenProperties"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SourceControlCreateOrUpdateParameters: msRest.CompositeMapper = {
  serializedName: "SourceControlCreateOrUpdateParameters",
  type: {
    name: "Composite",
    className: "SourceControlCreateOrUpdateParameters",
    modelProperties: {
      repoUrl: {
        serializedName: "properties.repoUrl",
        constraints: {
          MaxLength: 2000
        },
        type: {
          name: "String"
        }
      },
      branch: {
        serializedName: "properties.branch",
        constraints: {
          MaxLength: 255
        },
        type: {
          name: "String"
        }
      },
      folderPath: {
        serializedName: "properties.folderPath",
        constraints: {
          MaxLength: 255
        },
        type: {
          name: "String"
        }
      },
      autoSync: {
        serializedName: "properties.autoSync",
        type: {
          name: "Boolean"
        }
      },
      publishRunbook: {
        serializedName: "properties.publishRunbook",
        type: {
          name: "Boolean"
        }
      },
      sourceType: {
        serializedName: "properties.sourceType",
        type: {
          name: "String"
        }
      },
      securityToken: {
        serializedName: "properties.securityToken",
        type: {
          name: "Composite",
          className: "SourceControlSecurityTokenProperties"
        }
      },
      description: {
        serializedName: "properties.description",
        constraints: {
          MaxLength: 512
        },
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SourceControlSyncJob: msRest.CompositeMapper = {
  serializedName: "SourceControlSyncJob",
  type: {
    name: "Composite",
    className: "SourceControlSyncJob",
    modelProperties: {
      name: {
        readOnly: true,
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      type: {
        readOnly: true,
        serializedName: "type",
        type: {
          name: "String"
        }
      },
      id: {
        readOnly: true,
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      sourceControlSyncJobId: {
        serializedName: "properties.sourceControlSyncJobId",
        type: {
          name: "String"
        }
      },
      creationTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      provisioningState: {
        serializedName: "properties.provisioningState",
        type: {
          name: "String"
        }
      },
      startTime: {
        nullable: true,
        readOnly: true,
        serializedName: "properties.startTime",
        type: {
          name: "DateTime"
        }
      },
      endTime: {
        nullable: true,
        readOnly: true,
        serializedName: "properties.endTime",
        type: {
          name: "DateTime"
        }
      },
      syncType: {
        serializedName: "properties.syncType",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SourceControlSyncJobCreateParameters: msRest.CompositeMapper = {
  serializedName: "SourceControlSyncJobCreateParameters",
  type: {
    name: "Composite",
    className: "SourceControlSyncJobCreateParameters",
    modelProperties: {
      commitId: {
        required: true,
        serializedName: "properties.commitId",
        constraints: {
          MinLength: 0
        },
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SourceControlSyncJobById: msRest.CompositeMapper = {
  serializedName: "SourceControlSyncJobById",
  type: {
    name: "Composite",
    className: "SourceControlSyncJobById",
    modelProperties: {
      id: {
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      sourceControlSyncJobId: {
        serializedName: "properties.sourceControlSyncJobId",
        type: {
          name: "String"
        }
      },
      creationTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      provisioningState: {
        serializedName: "properties.provisioningState",
        type: {
          name: "String"
        }
      },
      startTime: {
        nullable: true,
        readOnly: true,
        serializedName: "properties.startTime",
        type: {
          name: "DateTime"
        }
      },
      endTime: {
        nullable: true,
        readOnly: true,
        serializedName: "properties.endTime",
        type: {
          name: "DateTime"
        }
      },
      syncType: {
        serializedName: "properties.syncType",
        type: {
          name: "String"
        }
      },
      exception: {
        serializedName: "properties.exception",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SourceControlSyncJobStream: msRest.CompositeMapper = {
  serializedName: "SourceControlSyncJobStream",
  type: {
    name: "Composite",
    className: "SourceControlSyncJobStream",
    modelProperties: {
      id: {
        readOnly: true,
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      sourceControlSyncJobStreamId: {
        serializedName: "properties.sourceControlSyncJobStreamId",
        type: {
          name: "String"
        }
      },
      summary: {
        serializedName: "properties.summary",
        type: {
          name: "String"
        }
      },
      time: {
        nullable: true,
        readOnly: true,
        serializedName: "properties.time",
        type: {
          name: "DateTime"
        }
      },
      streamType: {
        serializedName: "properties.streamType",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SourceControlSyncJobStreamById: msRest.CompositeMapper = {
  serializedName: "SourceControlSyncJobStreamById",
  type: {
    name: "Composite",
    className: "SourceControlSyncJobStreamById",
    modelProperties: {
      id: {
        readOnly: true,
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      sourceControlSyncJobStreamId: {
        serializedName: "properties.sourceControlSyncJobStreamId",
        type: {
          name: "String"
        }
      },
      summary: {
        serializedName: "properties.summary",
        type: {
          name: "String"
        }
      },
      time: {
        nullable: true,
        readOnly: true,
        serializedName: "properties.time",
        type: {
          name: "DateTime"
        }
      },
      streamType: {
        serializedName: "properties.streamType",
        type: {
          name: "String"
        }
      },
      streamText: {
        serializedName: "properties.streamText",
        type: {
          name: "String"
        }
      },
      value: {
        serializedName: "properties.value",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "Object"
            }
          }
        }
      }
    }
  }
};

export const JobStream: msRest.CompositeMapper = {
  serializedName: "JobStream",
  type: {
    name: "Composite",
    className: "JobStream",
    modelProperties: {
      id: {
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      jobStreamId: {
        serializedName: "properties.jobStreamId",
        type: {
          name: "String"
        }
      },
      time: {
        nullable: false,
        serializedName: "properties.time",
        type: {
          name: "DateTime"
        }
      },
      streamType: {
        serializedName: "properties.streamType",
        type: {
          name: "String"
        }
      },
      streamText: {
        serializedName: "properties.streamText",
        type: {
          name: "String"
        }
      },
      summary: {
        serializedName: "properties.summary",
        type: {
          name: "String"
        }
      },
      value: {
        serializedName: "properties.value",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "Object"
            }
          }
        }
      }
    }
  }
};

export const Job: msRest.CompositeMapper = {
  serializedName: "Job",
  type: {
    name: "Composite",
    className: "Job",
    modelProperties: {
      ...ProxyResource.type.modelProperties,
      runbook: {
        serializedName: "properties.runbook",
        type: {
          name: "Composite",
          className: "RunbookAssociationProperty"
        }
      },
      startedBy: {
        serializedName: "properties.startedBy",
        type: {
          name: "String"
        }
      },
      runOn: {
        serializedName: "properties.runOn",
        type: {
          name: "String"
        }
      },
      jobId: {
        nullable: false,
        serializedName: "properties.jobId",
        type: {
          name: "Uuid"
        }
      },
      creationTime: {
        nullable: false,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      status: {
        serializedName: "properties.status",
        type: {
          name: "String"
        }
      },
      statusDetails: {
        serializedName: "properties.statusDetails",
        type: {
          name: "String"
        }
      },
      startTime: {
        nullable: true,
        serializedName: "properties.startTime",
        type: {
          name: "DateTime"
        }
      },
      endTime: {
        nullable: true,
        serializedName: "properties.endTime",
        type: {
          name: "DateTime"
        }
      },
      exception: {
        serializedName: "properties.exception",
        type: {
          name: "String"
        }
      },
      lastModifiedTime: {
        nullable: true,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      lastStatusModifiedTime: {
        nullable: true,
        serializedName: "properties.lastStatusModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      parameters: {
        serializedName: "properties.parameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      },
      provisioningState: {
        serializedName: "properties.provisioningState",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const JobCollectionItem: msRest.CompositeMapper = {
  serializedName: "JobCollectionItem",
  type: {
    name: "Composite",
    className: "JobCollectionItem",
    modelProperties: {
      ...ProxyResource.type.modelProperties,
      runbook: {
        readOnly: true,
        serializedName: "properties.runbook",
        type: {
          name: "Composite",
          className: "RunbookAssociationProperty"
        }
      },
      jobId: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.jobId",
        type: {
          name: "Uuid"
        }
      },
      creationTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      status: {
        readOnly: true,
        serializedName: "properties.status",
        type: {
          name: "String"
        }
      },
      startTime: {
        nullable: true,
        readOnly: true,
        serializedName: "properties.startTime",
        type: {
          name: "DateTime"
        }
      },
      endTime: {
        nullable: true,
        readOnly: true,
        serializedName: "properties.endTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: true,
        readOnly: true,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      provisioningState: {
        readOnly: true,
        serializedName: "properties.provisioningState",
        type: {
          name: "String"
        }
      },
      runOn: {
        serializedName: "properties.runOn",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const JobCreateParameters: msRest.CompositeMapper = {
  serializedName: "JobCreateParameters",
  type: {
    name: "Composite",
    className: "JobCreateParameters",
    modelProperties: {
      runbook: {
        serializedName: "properties.runbook",
        type: {
          name: "Composite",
          className: "RunbookAssociationProperty"
        }
      },
      parameters: {
        serializedName: "properties.parameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      },
      runOn: {
        serializedName: "properties.runOn",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DscReportError: msRest.CompositeMapper = {
  serializedName: "DscReportError",
  type: {
    name: "Composite",
    className: "DscReportError",
    modelProperties: {
      errorSource: {
        serializedName: "errorSource",
        type: {
          name: "String"
        }
      },
      resourceId: {
        serializedName: "resourceId",
        type: {
          name: "String"
        }
      },
      errorCode: {
        serializedName: "errorCode",
        type: {
          name: "String"
        }
      },
      errorMessage: {
        serializedName: "errorMessage",
        type: {
          name: "String"
        }
      },
      locale: {
        serializedName: "locale",
        type: {
          name: "String"
        }
      },
      errorDetails: {
        serializedName: "errorDetails",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DscReportResourceNavigation: msRest.CompositeMapper = {
  serializedName: "DscReportResourceNavigation",
  type: {
    name: "Composite",
    className: "DscReportResourceNavigation",
    modelProperties: {
      resourceId: {
        serializedName: "resourceId",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DscReportResource: msRest.CompositeMapper = {
  serializedName: "DscReportResource",
  type: {
    name: "Composite",
    className: "DscReportResource",
    modelProperties: {
      resourceId: {
        serializedName: "resourceId",
        type: {
          name: "String"
        }
      },
      sourceInfo: {
        serializedName: "sourceInfo",
        type: {
          name: "String"
        }
      },
      dependsOn: {
        serializedName: "dependsOn",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "DscReportResourceNavigation"
            }
          }
        }
      },
      moduleName: {
        serializedName: "moduleName",
        type: {
          name: "String"
        }
      },
      moduleVersion: {
        serializedName: "moduleVersion",
        type: {
          name: "String"
        }
      },
      resourceName: {
        serializedName: "resourceName",
        type: {
          name: "String"
        }
      },
      error: {
        serializedName: "error",
        type: {
          name: "String"
        }
      },
      status: {
        serializedName: "status",
        type: {
          name: "String"
        }
      },
      durationInSeconds: {
        serializedName: "durationInSeconds",
        type: {
          name: "Number"
        }
      },
      startDate: {
        nullable: false,
        serializedName: "startDate",
        type: {
          name: "DateTime"
        }
      }
    }
  }
};

export const DscMetaConfiguration: msRest.CompositeMapper = {
  serializedName: "DscMetaConfiguration",
  type: {
    name: "Composite",
    className: "DscMetaConfiguration",
    modelProperties: {
      configurationModeFrequencyMins: {
        serializedName: "configurationModeFrequencyMins",
        type: {
          name: "Number"
        }
      },
      rebootNodeIfNeeded: {
        serializedName: "rebootNodeIfNeeded",
        type: {
          name: "Boolean"
        }
      },
      configurationMode: {
        serializedName: "configurationMode",
        type: {
          name: "String"
        }
      },
      actionAfterReboot: {
        serializedName: "actionAfterReboot",
        type: {
          name: "String"
        }
      },
      certificateId: {
        serializedName: "certificateId",
        type: {
          name: "String"
        }
      },
      refreshFrequencyMins: {
        serializedName: "refreshFrequencyMins",
        type: {
          name: "Number"
        }
      },
      allowModuleOverwrite: {
        serializedName: "allowModuleOverwrite",
        type: {
          name: "Boolean"
        }
      }
    }
  }
};

export const DscNodeReport: msRest.CompositeMapper = {
  serializedName: "DscNodeReport",
  type: {
    name: "Composite",
    className: "DscNodeReport",
    modelProperties: {
      endTime: {
        nullable: true,
        serializedName: "endTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        serializedName: "lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      startTime: {
        nullable: true,
        serializedName: "startTime",
        type: {
          name: "DateTime"
        }
      },
      type: {
        serializedName: "type",
        type: {
          name: "String"
        }
      },
      reportId: {
        serializedName: "reportId",
        type: {
          name: "String"
        }
      },
      status: {
        serializedName: "status",
        type: {
          name: "String"
        }
      },
      refreshMode: {
        serializedName: "refreshMode",
        type: {
          name: "String"
        }
      },
      rebootRequested: {
        serializedName: "rebootRequested",
        type: {
          name: "String"
        }
      },
      reportFormatVersion: {
        serializedName: "reportFormatVersion",
        type: {
          name: "String"
        }
      },
      configurationVersion: {
        serializedName: "configurationVersion",
        type: {
          name: "String"
        }
      },
      id: {
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      errors: {
        serializedName: "errors",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "DscReportError"
            }
          }
        }
      },
      resources: {
        serializedName: "resources",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "DscReportResource"
            }
          }
        }
      },
      metaConfiguration: {
        serializedName: "metaConfiguration",
        type: {
          name: "Composite",
          className: "DscMetaConfiguration"
        }
      },
      hostName: {
        serializedName: "hostName",
        type: {
          name: "String"
        }
      },
      iPV4Addresses: {
        serializedName: "iPV4Addresses",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      iPV6Addresses: {
        serializedName: "iPV6Addresses",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      numberOfResources: {
        serializedName: "numberOfResources",
        type: {
          name: "Number"
        }
      },
      rawErrors: {
        serializedName: "rawErrors",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const AgentRegistrationKeys: msRest.CompositeMapper = {
  serializedName: "AgentRegistrationKeys",
  type: {
    name: "Composite",
    className: "AgentRegistrationKeys",
    modelProperties: {
      primary: {
        serializedName: "primary",
        type: {
          name: "String"
        }
      },
      secondary: {
        serializedName: "secondary",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const AgentRegistration: msRest.CompositeMapper = {
  serializedName: "AgentRegistration",
  type: {
    name: "Composite",
    className: "AgentRegistration",
    modelProperties: {
      dscMetaConfiguration: {
        serializedName: "dscMetaConfiguration",
        type: {
          name: "String"
        }
      },
      endpoint: {
        serializedName: "endpoint",
        type: {
          name: "String"
        }
      },
      keys: {
        serializedName: "keys",
        type: {
          name: "Composite",
          className: "AgentRegistrationKeys"
        }
      },
      id: {
        serializedName: "id",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DscNodeExtensionHandlerAssociationProperty: msRest.CompositeMapper = {
  serializedName: "DscNodeExtensionHandlerAssociationProperty",
  type: {
    name: "Composite",
    className: "DscNodeExtensionHandlerAssociationProperty",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      version: {
        serializedName: "version",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DscNode: msRest.CompositeMapper = {
  serializedName: "DscNode",
  type: {
    name: "Composite",
    className: "DscNode",
    modelProperties: {
      ...ProxyResource.type.modelProperties,
      lastSeen: {
        nullable: false,
        serializedName: "properties.lastSeen",
        type: {
          name: "DateTime"
        }
      },
      registrationTime: {
        nullable: false,
        serializedName: "properties.registrationTime",
        type: {
          name: "DateTime"
        }
      },
      ip: {
        serializedName: "properties.ip",
        type: {
          name: "String"
        }
      },
      accountId: {
        serializedName: "properties.accountId",
        type: {
          name: "String"
        }
      },
      dscNodeName: {
        serializedName: "properties.nodeConfiguration.name",
        type: {
          name: "String"
        }
      },
      status: {
        serializedName: "properties.status",
        type: {
          name: "String"
        }
      },
      nodeId: {
        serializedName: "properties.nodeId",
        type: {
          name: "String"
        }
      },
      etag: {
        serializedName: "properties.etag",
        type: {
          name: "String"
        }
      },
      totalCount: {
        serializedName: "properties.totalCount",
        type: {
          name: "Number"
        }
      },
      extensionHandler: {
        serializedName: "properties.extensionHandler",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "DscNodeExtensionHandlerAssociationProperty"
            }
          }
        }
      }
    }
  }
};

export const AgentRegistrationRegenerateKeyParameter: msRest.CompositeMapper = {
  serializedName: "AgentRegistrationRegenerateKeyParameter",
  type: {
    name: "Composite",
    className: "AgentRegistrationRegenerateKeyParameter",
    modelProperties: {
      keyName: {
        required: true,
        serializedName: "keyName",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DscNodeUpdateParametersProperties: msRest.CompositeMapper = {
  serializedName: "DscNodeUpdateParameters_properties",
  type: {
    name: "Composite",
    className: "DscNodeUpdateParametersProperties",
    modelProperties: {
      name: {
        serializedName: "nodeConfiguration.name",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DscNodeUpdateParameters: msRest.CompositeMapper = {
  serializedName: "DscNodeUpdateParameters",
  type: {
    name: "Composite",
    className: "DscNodeUpdateParameters",
    modelProperties: {
      nodeId: {
        serializedName: "nodeId",
        type: {
          name: "String"
        }
      },
      properties: {
        serializedName: "properties",
        type: {
          name: "Composite",
          className: "DscNodeUpdateParametersProperties"
        }
      }
    }
  }
};

export const DscConfigurationAssociationProperty: msRest.CompositeMapper = {
  serializedName: "DscConfigurationAssociationProperty",
  type: {
    name: "Composite",
    className: "DscConfigurationAssociationProperty",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DscCompilationJob: msRest.CompositeMapper = {
  serializedName: "DscCompilationJob",
  type: {
    name: "Composite",
    className: "DscCompilationJob",
    modelProperties: {
      ...ProxyResource.type.modelProperties,
      configuration: {
        serializedName: "properties.configuration",
        type: {
          name: "Composite",
          className: "DscConfigurationAssociationProperty"
        }
      },
      startedBy: {
        readOnly: true,
        serializedName: "properties.startedBy",
        type: {
          name: "String"
        }
      },
      jobId: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.jobId",
        type: {
          name: "Uuid"
        }
      },
      creationTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      provisioningState: {
        serializedName: "properties.provisioningState",
        type: {
          name: "String"
        }
      },
      runOn: {
        serializedName: "properties.runOn",
        type: {
          name: "String"
        }
      },
      status: {
        serializedName: "properties.status",
        type: {
          name: "String"
        }
      },
      statusDetails: {
        serializedName: "properties.statusDetails",
        type: {
          name: "String"
        }
      },
      startTime: {
        nullable: true,
        readOnly: true,
        serializedName: "properties.startTime",
        type: {
          name: "DateTime"
        }
      },
      endTime: {
        nullable: true,
        readOnly: true,
        serializedName: "properties.endTime",
        type: {
          name: "DateTime"
        }
      },
      exception: {
        readOnly: true,
        serializedName: "properties.exception",
        type: {
          name: "String"
        }
      },
      lastModifiedTime: {
        nullable: false,
        readOnly: true,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      lastStatusModifiedTime: {
        nullable: true,
        readOnly: true,
        serializedName: "properties.lastStatusModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      parameters: {
        serializedName: "properties.parameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const DscCompilationJobCreateParameters: msRest.CompositeMapper = {
  serializedName: "DscCompilationJobCreateParameters",
  type: {
    name: "Composite",
    className: "DscCompilationJobCreateParameters",
    modelProperties: {
      configuration: {
        required: true,
        serializedName: "properties.configuration",
        type: {
          name: "Composite",
          className: "DscConfigurationAssociationProperty"
        }
      },
      parameters: {
        serializedName: "properties.parameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      },
      incrementNodeConfigurationBuild: {
        serializedName: "properties.incrementNodeConfigurationBuild",
        type: {
          name: "Boolean"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      location: {
        serializedName: "location",
        type: {
          name: "String"
        }
      },
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const DscNodeConfiguration: msRest.CompositeMapper = {
  serializedName: "DscNodeConfiguration",
  type: {
    name: "Composite",
    className: "DscNodeConfiguration",
    modelProperties: {
      ...ProxyResource.type.modelProperties,
      lastModifiedTime: {
        nullable: false,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      creationTime: {
        nullable: false,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      configuration: {
        serializedName: "properties.configuration",
        type: {
          name: "Composite",
          className: "DscConfigurationAssociationProperty"
        }
      },
      source: {
        serializedName: "properties.source",
        type: {
          name: "String"
        }
      },
      nodeCount: {
        serializedName: "properties.nodeCount",
        type: {
          name: "Number"
        }
      },
      incrementNodeConfigurationBuild: {
        serializedName: "properties.incrementNodeConfigurationBuild",
        type: {
          name: "Boolean"
        }
      }
    }
  }
};

export const DscNodeConfigurationCreateOrUpdateParameters: msRest.CompositeMapper = {
  serializedName: "DscNodeConfigurationCreateOrUpdateParameters",
  type: {
    name: "Composite",
    className: "DscNodeConfigurationCreateOrUpdateParameters",
    modelProperties: {
      source: {
        required: true,
        serializedName: "properties.source",
        type: {
          name: "Composite",
          className: "ContentSource"
        }
      },
      configuration: {
        required: true,
        serializedName: "properties.configuration",
        type: {
          name: "Composite",
          className: "DscConfigurationAssociationProperty"
        }
      },
      incrementNodeConfigurationBuild: {
        serializedName: "properties.incrementNodeConfigurationBuild",
        type: {
          name: "Boolean"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const NodeCountProperties: msRest.CompositeMapper = {
  serializedName: "NodeCountProperties",
  type: {
    name: "Composite",
    className: "NodeCountProperties",
    modelProperties: {
      count: {
        serializedName: "count",
        type: {
          name: "Number"
        }
      }
    }
  }
};

export const NodeCount: msRest.CompositeMapper = {
  serializedName: "NodeCount",
  type: {
    name: "Composite",
    className: "NodeCount",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      properties: {
        serializedName: "properties",
        type: {
          name: "Composite",
          className: "NodeCountProperties"
        }
      }
    }
  }
};

export const NodeCounts: msRest.CompositeMapper = {
  serializedName: "NodeCounts",
  type: {
    name: "Composite",
    className: "NodeCounts",
    modelProperties: {
      value: {
        serializedName: "value",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "NodeCount"
            }
          }
        }
      },
      totalCount: {
        serializedName: "totalCount",
        type: {
          name: "Number"
        }
      }
    }
  }
};

export const RunbookParameter: msRest.CompositeMapper = {
  serializedName: "RunbookParameter",
  type: {
    name: "Composite",
    className: "RunbookParameter",
    modelProperties: {
      type: {
        serializedName: "type",
        type: {
          name: "String"
        }
      },
      isMandatory: {
        serializedName: "isMandatory",
        type: {
          name: "Boolean"
        }
      },
      position: {
        serializedName: "position",
        type: {
          name: "Number"
        }
      },
      defaultValue: {
        serializedName: "defaultValue",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const RunbookDraft: msRest.CompositeMapper = {
  serializedName: "RunbookDraft",
  type: {
    name: "Composite",
    className: "RunbookDraft",
    modelProperties: {
      inEdit: {
        serializedName: "inEdit",
        type: {
          name: "Boolean"
        }
      },
      draftContentLink: {
        serializedName: "draftContentLink",
        type: {
          name: "Composite",
          className: "ContentLink"
        }
      },
      creationTime: {
        nullable: false,
        serializedName: "creationTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        serializedName: "lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      parameters: {
        serializedName: "parameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "Composite",
              className: "RunbookParameter"
            }
          }
        }
      },
      outputTypes: {
        serializedName: "outputTypes",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const Runbook: msRest.CompositeMapper = {
  serializedName: "Runbook",
  type: {
    name: "Composite",
    className: "Runbook",
    modelProperties: {
      ...TrackedResource.type.modelProperties,
      runbookType: {
        serializedName: "properties.runbookType",
        type: {
          name: "String"
        }
      },
      publishContentLink: {
        serializedName: "properties.publishContentLink",
        type: {
          name: "Composite",
          className: "ContentLink"
        }
      },
      state: {
        serializedName: "properties.state",
        type: {
          name: "String"
        }
      },
      logVerbose: {
        serializedName: "properties.logVerbose",
        type: {
          name: "Boolean"
        }
      },
      logProgress: {
        serializedName: "properties.logProgress",
        type: {
          name: "Boolean"
        }
      },
      logActivityTrace: {
        serializedName: "properties.logActivityTrace",
        type: {
          name: "Number"
        }
      },
      jobCount: {
        serializedName: "properties.jobCount",
        type: {
          name: "Number"
        }
      },
      parameters: {
        serializedName: "properties.parameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "Composite",
              className: "RunbookParameter"
            }
          }
        }
      },
      outputTypes: {
        serializedName: "properties.outputTypes",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      draft: {
        serializedName: "properties.draft",
        type: {
          name: "Composite",
          className: "RunbookDraft"
        }
      },
      provisioningState: {
        serializedName: "properties.provisioningState",
        type: {
          name: "Enum",
          allowedValues: [
            "Succeeded"
          ]
        }
      },
      lastModifiedBy: {
        serializedName: "properties.lastModifiedBy",
        type: {
          name: "String"
        }
      },
      creationTime: {
        nullable: false,
        serializedName: "properties.creationTime",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedTime: {
        nullable: false,
        serializedName: "properties.lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      etag: {
        serializedName: "etag",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const RunbookCreateOrUpdateParameters: msRest.CompositeMapper = {
  serializedName: "RunbookCreateOrUpdateParameters",
  type: {
    name: "Composite",
    className: "RunbookCreateOrUpdateParameters",
    modelProperties: {
      logVerbose: {
        serializedName: "properties.logVerbose",
        type: {
          name: "Boolean"
        }
      },
      logProgress: {
        serializedName: "properties.logProgress",
        type: {
          name: "Boolean"
        }
      },
      runbookType: {
        required: true,
        serializedName: "properties.runbookType",
        type: {
          name: "String"
        }
      },
      draft: {
        serializedName: "properties.draft",
        type: {
          name: "Composite",
          className: "RunbookDraft"
        }
      },
      publishContentLink: {
        serializedName: "properties.publishContentLink",
        type: {
          name: "Composite",
          className: "ContentLink"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      logActivityTrace: {
        serializedName: "properties.logActivityTrace",
        type: {
          name: "Number"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      location: {
        serializedName: "location",
        type: {
          name: "String"
        }
      },
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const RunbookUpdateParameters: msRest.CompositeMapper = {
  serializedName: "RunbookUpdateParameters",
  type: {
    name: "Composite",
    className: "RunbookUpdateParameters",
    modelProperties: {
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      logVerbose: {
        serializedName: "properties.logVerbose",
        type: {
          name: "Boolean"
        }
      },
      logProgress: {
        serializedName: "properties.logProgress",
        type: {
          name: "Boolean"
        }
      },
      logActivityTrace: {
        serializedName: "properties.logActivityTrace",
        type: {
          name: "Number"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      location: {
        serializedName: "location",
        type: {
          name: "String"
        }
      },
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const RunbookDraftUndoEditResult: msRest.CompositeMapper = {
  serializedName: "RunbookDraftUndoEditResult",
  type: {
    name: "Composite",
    className: "RunbookDraftUndoEditResult",
    modelProperties: {
      statusCode: {
        serializedName: "statusCode",
        type: {
          name: "String"
        }
      },
      requestId: {
        serializedName: "requestId",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const TestJobCreateParameters: msRest.CompositeMapper = {
  serializedName: "TestJobCreateParameters",
  type: {
    name: "Composite",
    className: "TestJobCreateParameters",
    modelProperties: {
      parameters: {
        serializedName: "parameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      },
      runOn: {
        serializedName: "runOn",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const TestJob: msRest.CompositeMapper = {
  serializedName: "TestJob",
  type: {
    name: "Composite",
    className: "TestJob",
    modelProperties: {
      creationTime: {
        nullable: false,
        serializedName: "creationTime",
        type: {
          name: "DateTime"
        }
      },
      status: {
        serializedName: "status",
        type: {
          name: "String"
        }
      },
      statusDetails: {
        serializedName: "statusDetails",
        type: {
          name: "String"
        }
      },
      runOn: {
        serializedName: "runOn",
        type: {
          name: "String"
        }
      },
      startTime: {
        nullable: true,
        serializedName: "startTime",
        type: {
          name: "DateTime"
        }
      },
      endTime: {
        nullable: true,
        serializedName: "endTime",
        type: {
          name: "DateTime"
        }
      },
      exception: {
        serializedName: "exception",
        type: {
          name: "String"
        }
      },
      lastModifiedTime: {
        nullable: false,
        serializedName: "lastModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      lastStatusModifiedTime: {
        nullable: true,
        serializedName: "lastStatusModifiedTime",
        type: {
          name: "DateTime"
        }
      },
      parameters: {
        serializedName: "parameters",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      },
      logActivityTrace: {
        serializedName: "logActivityTrace",
        type: {
          name: "Number"
        }
      }
    }
  }
};

export const RunbookCreateOrUpdateDraftProperties: msRest.CompositeMapper = {
  serializedName: "RunbookCreateOrUpdateDraftProperties",
  type: {
    name: "Composite",
    className: "RunbookCreateOrUpdateDraftProperties",
    modelProperties: {
      logVerbose: {
        serializedName: "logVerbose",
        type: {
          name: "Boolean"
        }
      },
      logProgress: {
        serializedName: "logProgress",
        type: {
          name: "Boolean"
        }
      },
      runbookType: {
        required: true,
        serializedName: "runbookType",
        type: {
          name: "String"
        }
      },
      draft: {
        required: true,
        serializedName: "draft",
        type: {
          name: "Composite",
          className: "RunbookDraft"
        }
      },
      description: {
        serializedName: "description",
        type: {
          name: "String"
        }
      },
      logActivityTrace: {
        serializedName: "logActivityTrace",
        type: {
          name: "Number"
        }
      }
    }
  }
};

export const RunbookCreateOrUpdateDraftParameters: msRest.CompositeMapper = {
  serializedName: "RunbookCreateOrUpdateDraftParameters",
  type: {
    name: "Composite",
    className: "RunbookCreateOrUpdateDraftParameters",
    modelProperties: {
      runbookContent: {
        required: true,
        serializedName: "runbookContent",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const PythonPackageCreateParameters: msRest.CompositeMapper = {
  serializedName: "PythonPackageCreateParameters",
  type: {
    name: "Composite",
    className: "PythonPackageCreateParameters",
    modelProperties: {
      contentLink: {
        required: true,
        serializedName: "properties.contentLink",
        type: {
          name: "Composite",
          className: "ContentLink"
        }
      },
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const PythonPackageUpdateParameters: msRest.CompositeMapper = {
  serializedName: "PythonPackageUpdateParameters",
  type: {
    name: "Composite",
    className: "PythonPackageUpdateParameters",
    modelProperties: {
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const RunbookDraftReplaceContentHeaders: msRest.CompositeMapper = {
  serializedName: "runbookdraft-replacecontent-headers",
  type: {
    name: "Composite",
    className: "RunbookDraftReplaceContentHeaders",
    modelProperties: {
      location: {
        serializedName: "location",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const RunbookPublishHeaders: msRest.CompositeMapper = {
  serializedName: "runbook-publish-headers",
  type: {
    name: "Composite",
    className: "RunbookPublishHeaders",
    modelProperties: {
      location: {
        serializedName: "location",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const AutomationAccountListResult: msRest.CompositeMapper = {
  serializedName: "AutomationAccountListResult",
  type: {
    name: "Composite",
    className: "AutomationAccountListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "AutomationAccount"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const OperationListResult: msRest.CompositeMapper = {
  serializedName: "OperationListResult",
  type: {
    name: "Composite",
    className: "OperationListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Operation"
            }
          }
        }
      }
    }
  }
};

export const StatisticsListResult: msRest.CompositeMapper = {
  serializedName: "StatisticsListResult",
  type: {
    name: "Composite",
    className: "StatisticsListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Statistics"
            }
          }
        }
      }
    }
  }
};

export const UsageListResult: msRest.CompositeMapper = {
  serializedName: "UsageListResult",
  type: {
    name: "Composite",
    className: "UsageListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Usage"
            }
          }
        }
      }
    }
  }
};

export const CertificateListResult: msRest.CompositeMapper = {
  serializedName: "CertificateListResult",
  type: {
    name: "Composite",
    className: "CertificateListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Certificate"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ConnectionListResult: msRest.CompositeMapper = {
  serializedName: "ConnectionListResult",
  type: {
    name: "Composite",
    className: "ConnectionListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Connection"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ConnectionTypeListResult: msRest.CompositeMapper = {
  serializedName: "ConnectionTypeListResult",
  type: {
    name: "Composite",
    className: "ConnectionTypeListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ConnectionType"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const CredentialListResult: msRest.CompositeMapper = {
  serializedName: "CredentialListResult",
  type: {
    name: "Composite",
    className: "CredentialListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Credential"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DscConfigurationListResult: msRest.CompositeMapper = {
  serializedName: "DscConfigurationListResult",
  type: {
    name: "Composite",
    className: "DscConfigurationListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "DscConfiguration"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      },
      totalCount: {
        serializedName: "totalCount",
        type: {
          name: "Number"
        }
      }
    }
  }
};

export const HybridRunbookWorkerGroupsListResult: msRest.CompositeMapper = {
  serializedName: "HybridRunbookWorkerGroupsListResult",
  type: {
    name: "Composite",
    className: "HybridRunbookWorkerGroupsListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "HybridRunbookWorkerGroup"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const JobScheduleListResult: msRest.CompositeMapper = {
  serializedName: "JobScheduleListResult",
  type: {
    name: "Composite",
    className: "JobScheduleListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "JobSchedule"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ActivityListResult: msRest.CompositeMapper = {
  serializedName: "ActivityListResult",
  type: {
    name: "Composite",
    className: "ActivityListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Activity"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ModuleListResult: msRest.CompositeMapper = {
  serializedName: "ModuleListResult",
  type: {
    name: "Composite",
    className: "ModuleListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Module"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const TypeFieldListResult: msRest.CompositeMapper = {
  serializedName: "TypeFieldListResult",
  type: {
    name: "Composite",
    className: "TypeFieldListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "TypeField"
            }
          }
        }
      }
    }
  }
};

export const ScheduleListResult: msRest.CompositeMapper = {
  serializedName: "ScheduleListResult",
  type: {
    name: "Composite",
    className: "ScheduleListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Schedule"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const VariableListResult: msRest.CompositeMapper = {
  serializedName: "VariableListResult",
  type: {
    name: "Composite",
    className: "VariableListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Variable"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const WebhookListResult: msRest.CompositeMapper = {
  serializedName: "WebhookListResult",
  type: {
    name: "Composite",
    className: "WebhookListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Webhook"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const WatcherListResult: msRest.CompositeMapper = {
  serializedName: "WatcherListResult",
  type: {
    name: "Composite",
    className: "WatcherListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Watcher"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SourceControlListResult: msRest.CompositeMapper = {
  serializedName: "SourceControlListResult",
  type: {
    name: "Composite",
    className: "SourceControlListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "SourceControl"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SourceControlSyncJobListResult: msRest.CompositeMapper = {
  serializedName: "SourceControlSyncJobListResult",
  type: {
    name: "Composite",
    className: "SourceControlSyncJobListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "SourceControlSyncJob"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SourceControlSyncJobStreamsListBySyncJob: msRest.CompositeMapper = {
  serializedName: "SourceControlSyncJobStreamsListBySyncJob",
  type: {
    name: "Composite",
    className: "SourceControlSyncJobStreamsListBySyncJob",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "SourceControlSyncJobStream"
            }
          }
        }
      },
      nextLink: {
        readOnly: true,
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const JobListResultV2: msRest.CompositeMapper = {
  serializedName: "JobListResultV2",
  type: {
    name: "Composite",
    className: "JobListResultV2",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "JobCollectionItem"
            }
          }
        }
      },
      nextLink: {
        readOnly: true,
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const JobStreamListResult: msRest.CompositeMapper = {
  serializedName: "JobStreamListResult",
  type: {
    name: "Composite",
    className: "JobStreamListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "JobStream"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DscNodeListResult: msRest.CompositeMapper = {
  serializedName: "DscNodeListResult",
  type: {
    name: "Composite",
    className: "DscNodeListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "DscNode"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      },
      totalCount: {
        serializedName: "totalCount",
        type: {
          name: "Number"
        }
      }
    }
  }
};

export const DscNodeReportListResult: msRest.CompositeMapper = {
  serializedName: "DscNodeReportListResult",
  type: {
    name: "Composite",
    className: "DscNodeReportListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "DscNodeReport"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DscCompilationJobListResult: msRest.CompositeMapper = {
  serializedName: "DscCompilationJobListResult",
  type: {
    name: "Composite",
    className: "DscCompilationJobListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "DscCompilationJob"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DscNodeConfigurationListResult: msRest.CompositeMapper = {
  serializedName: "DscNodeConfigurationListResult",
  type: {
    name: "Composite",
    className: "DscNodeConfigurationListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "DscNodeConfiguration"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      },
      totalCount: {
        serializedName: "totalCount",
        type: {
          name: "Number"
        }
      }
    }
  }
};

export const RunbookListResult: msRest.CompositeMapper = {
  serializedName: "RunbookListResult",
  type: {
    name: "Composite",
    className: "RunbookListResult",
    modelProperties: {
      value: {
        serializedName: "",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Runbook"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};
