UNPKG

@azure/arm-monitor

Version:
6,954 lines 151 kB
/*
 * Copyright (c) Microsoft Corporation.
 * Licensed under the MIT License.
 *
 * Code generated by Microsoft (R) AutoRest Code Generator.
 * Changes may cause incorrect behavior and will be lost if the code is regenerated.
 */

import * as coreClient from "@azure/core-client";

export const AutoscaleSettingResourceCollection: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "AutoscaleSettingResourceCollection",
    modelProperties: {
      value: {
        serializedName: "value",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "AutoscaleSettingResource"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const AutoscaleProfile: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "AutoscaleProfile",
    modelProperties: {
      name: {
        serializedName: "name",
        required: true,
        type: {
          name: "String"
        }
      },
      capacity: {
        serializedName: "capacity",
        type: {
          name: "Composite",
          className: "ScaleCapacity"
        }
      },
      rules: {
        serializedName: "rules",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ScaleRule"
            }
          }
        }
      },
      fixedDate: {
        serializedName: "fixedDate",
        type: {
          name: "Composite",
          className: "TimeWindow"
        }
      },
      recurrence: {
        serializedName: "recurrence",
        type: {
          name: "Composite",
          className: "Recurrence"
        }
      }
    }
  }
};

export const ScaleCapacity: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ScaleCapacity",
    modelProperties: {
      minimum: {
        serializedName: "minimum",
        required: true,
        type: {
          name: "String"
        }
      },
      maximum: {
        serializedName: "maximum",
        required: true,
        type: {
          name: "String"
        }
      },
      default: {
        serializedName: "default",
        required: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ScaleRule: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ScaleRule",
    modelProperties: {
      metricTrigger: {
        serializedName: "metricTrigger",
        type: {
          name: "Composite",
          className: "MetricTrigger"
        }
      },
      scaleAction: {
        serializedName: "scaleAction",
        type: {
          name: "Composite",
          className: "ScaleAction"
        }
      }
    }
  }
};

export const MetricTrigger: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricTrigger",
    modelProperties: {
      metricName: {
        serializedName: "metricName",
        required: true,
        type: {
          name: "String"
        }
      },
      metricNamespace: {
        serializedName: "metricNamespace",
        type: {
          name: "String"
        }
      },
      metricResourceUri: {
        serializedName: "metricResourceUri",
        required: true,
        type: {
          name: "String"
        }
      },
      metricResourceLocation: {
        serializedName: "metricResourceLocation",
        type: {
          name: "String"
        }
      },
      timeGrain: {
        serializedName: "timeGrain",
        required: true,
        type: {
          name: "TimeSpan"
        }
      },
      statistic: {
        serializedName: "statistic",
        required: true,
        type: {
          name: "Enum",
          allowedValues: ["Average", "Min", "Max", "Sum", "Count"]
        }
      },
      timeWindow: {
        serializedName: "timeWindow",
        required: true,
        type: {
          name: "TimeSpan"
        }
      },
      timeAggregation: {
        serializedName: "timeAggregation",
        required: true,
        type: {
          name: "Enum",
          allowedValues: [
            "Average",
            "Minimum",
            "Maximum",
            "Total",
            "Count",
            "Last"
          ]
        }
      },
      operator: {
        serializedName: "operator",
        required: true,
        type: {
          name: "Enum",
          allowedValues: [
            "Equals",
            "NotEquals",
            "GreaterThan",
            "GreaterThanOrEqual",
            "LessThan",
            "LessThanOrEqual"
          ]
        }
      },
      threshold: {
        serializedName: "threshold",
        required: true,
        type: {
          name: "Number"
        }
      },
      dimensions: {
        serializedName: "dimensions",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ScaleRuleMetricDimension"
            }
          }
        }
      },
      dividePerInstance: {
        serializedName: "dividePerInstance",
        type: {
          name: "Boolean"
        }
      }
    }
  }
};

export const ScaleRuleMetricDimension: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ScaleRuleMetricDimension",
    modelProperties: {
      dimensionName: {
        serializedName: "DimensionName",
        required: true,
        type: {
          name: "String"
        }
      },
      operator: {
        serializedName: "Operator",
        required: true,
        type: {
          name: "String"
        }
      },
      values: {
        serializedName: "Values",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const ScaleAction: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ScaleAction",
    modelProperties: {
      direction: {
        serializedName: "direction",
        required: true,
        type: {
          name: "Enum",
          allowedValues: ["None", "Increase", "Decrease"]
        }
      },
      type: {
        serializedName: "type",
        required: true,
        type: {
          name: "Enum",
          allowedValues: [
            "ChangeCount",
            "PercentChangeCount",
            "ExactCount",
            "ServiceAllowedNextValue"
          ]
        }
      },
      value: {
        defaultValue: "1",
        serializedName: "value",
        type: {
          name: "String"
        }
      },
      cooldown: {
        serializedName: "cooldown",
        required: true,
        type: {
          name: "TimeSpan"
        }
      }
    }
  }
};

export const TimeWindow: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "TimeWindow",
    modelProperties: {
      timeZone: {
        serializedName: "timeZone",
        type: {
          name: "String"
        }
      },
      start: {
        serializedName: "start",
        required: true,
        type: {
          name: "DateTime"
        }
      },
      end: {
        serializedName: "end",
        required: true,
        type: {
          name: "DateTime"
        }
      }
    }
  }
};

export const Recurrence: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "Recurrence",
    modelProperties: {
      frequency: {
        serializedName: "frequency",
        required: true,
        type: {
          name: "Enum",
          allowedValues: [
            "None",
            "Second",
            "Minute",
            "Hour",
            "Day",
            "Week",
            "Month",
            "Year"
          ]
        }
      },
      schedule: {
        serializedName: "schedule",
        type: {
          name: "Composite",
          className: "RecurrentSchedule"
        }
      }
    }
  }
};

export const RecurrentSchedule: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "RecurrentSchedule",
    modelProperties: {
      timeZone: {
        serializedName: "timeZone",
        required: true,
        type: {
          name: "String"
        }
      },
      days: {
        serializedName: "days",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      hours: {
        serializedName: "hours",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Number"
            }
          }
        }
      },
      minutes: {
        serializedName: "minutes",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Number"
            }
          }
        }
      }
    }
  }
};

export const AutoscaleNotification: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "AutoscaleNotification",
    modelProperties: {
      operation: {
        defaultValue: "Scale",
        isConstant: true,
        serializedName: "operation",
        type: {
          name: "String"
        }
      },
      email: {
        serializedName: "email",
        type: {
          name: "Composite",
          className: "EmailNotification"
        }
      },
      webhooks: {
        serializedName: "webhooks",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "WebhookNotification"
            }
          }
        }
      }
    }
  }
};

export const EmailNotification: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "EmailNotification",
    modelProperties: {
      sendToSubscriptionAdministrator: {
        defaultValue: false,
        serializedName: "sendToSubscriptionAdministrator",
        type: {
          name: "Boolean"
        }
      },
      sendToSubscriptionCoAdministrators: {
        defaultValue: false,
        serializedName: "sendToSubscriptionCoAdministrators",
        type: {
          name: "Boolean"
        }
      },
      customEmails: {
        serializedName: "customEmails",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const WebhookNotification: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "WebhookNotification",
    modelProperties: {
      serviceUri: {
        serializedName: "serviceUri",
        type: {
          name: "String"
        }
      },
      properties: {
        serializedName: "properties",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      }
    }
  }
};

export const Resource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "Resource",
    modelProperties: {
      id: {
        serializedName: "id",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      type: {
        serializedName: "type",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      location: {
        serializedName: "location",
        required: true,
        type: {
          name: "String"
        }
      },
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      }
    }
  }
};

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

export const AutoscaleSettingResourcePatch: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "AutoscaleSettingResourcePatch",
    modelProperties: {
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      },
      profiles: {
        constraints: {
          MaxItems: 20
        },
        serializedName: "properties.profiles",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "AutoscaleProfile"
            }
          }
        }
      },
      notifications: {
        serializedName: "properties.notifications",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "AutoscaleNotification"
            }
          }
        }
      },
      enabled: {
        defaultValue: true,
        serializedName: "properties.enabled",
        type: {
          name: "Boolean"
        }
      },
      name: {
        serializedName: "properties.name",
        type: {
          name: "String"
        }
      },
      targetResourceUri: {
        serializedName: "properties.targetResourceUri",
        type: {
          name: "String"
        }
      },
      targetResourceLocation: {
        serializedName: "properties.targetResourceLocation",
        type: {
          name: "String"
        }
      }
    }
  }
};

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

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

export const OperationDisplay: coreClient.CompositeMapper = {
  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 Incident: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "Incident",
    modelProperties: {
      name: {
        serializedName: "name",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      ruleName: {
        serializedName: "ruleName",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      isActive: {
        serializedName: "isActive",
        readOnly: true,
        type: {
          name: "Boolean"
        }
      },
      activatedTime: {
        serializedName: "activatedTime",
        readOnly: true,
        type: {
          name: "DateTime"
        }
      },
      resolvedTime: {
        serializedName: "resolvedTime",
        readOnly: true,
        type: {
          name: "DateTime"
        }
      }
    }
  }
};

export const IncidentListResult: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "IncidentListResult",
    modelProperties: {
      value: {
        serializedName: "value",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Incident"
            }
          }
        }
      }
    }
  }
};

export const RuleCondition: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "RuleCondition",
    uberParent: "RuleCondition",
    polymorphicDiscriminator: {
      serializedName: "odata\\.type",
      clientName: "odataType"
    },
    modelProperties: {
      odataType: {
        serializedName: "odata\\.type",
        required: true,
        type: {
          name: "String"
        }
      },
      dataSource: {
        serializedName: "dataSource",
        type: {
          name: "Composite",
          className: "RuleDataSource"
        }
      }
    }
  }
};

export const RuleDataSource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "RuleDataSource",
    uberParent: "RuleDataSource",
    polymorphicDiscriminator: {
      serializedName: "odata\\.type",
      clientName: "odataType"
    },
    modelProperties: {
      odataType: {
        serializedName: "odata\\.type",
        required: true,
        type: {
          name: "String"
        }
      },
      resourceUri: {
        serializedName: "resourceUri",
        type: {
          name: "String"
        }
      },
      legacyResourceId: {
        serializedName: "legacyResourceId",
        type: {
          name: "String"
        }
      },
      resourceLocation: {
        serializedName: "resourceLocation",
        type: {
          name: "String"
        }
      },
      metricNamespace: {
        serializedName: "metricNamespace",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const RuleAction: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "RuleAction",
    uberParent: "RuleAction",
    polymorphicDiscriminator: {
      serializedName: "odata\\.type",
      clientName: "odataType"
    },
    modelProperties: {
      odataType: {
        serializedName: "odata\\.type",
        required: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const AlertRuleResourcePatch: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "AlertRuleResourcePatch",
    modelProperties: {
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      },
      name: {
        serializedName: "properties.name",
        type: {
          name: "String"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      provisioningState: {
        serializedName: "properties.provisioningState",
        type: {
          name: "String"
        }
      },
      isEnabled: {
        serializedName: "properties.isEnabled",
        type: {
          name: "Boolean"
        }
      },
      condition: {
        serializedName: "properties.condition",
        type: {
          name: "Composite",
          className: "RuleCondition"
        }
      },
      action: {
        serializedName: "properties.action",
        type: {
          name: "Composite",
          className: "RuleAction"
        }
      },
      actions: {
        serializedName: "properties.actions",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "RuleAction"
            }
          }
        }
      },
      lastUpdatedTime: {
        serializedName: "properties.lastUpdatedTime",
        readOnly: true,
        type: {
          name: "DateTime"
        }
      }
    }
  }
};

export const AlertRuleResourceCollection: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "AlertRuleResourceCollection",
    modelProperties: {
      value: {
        serializedName: "value",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "AlertRuleResource"
            }
          }
        }
      }
    }
  }
};

export const RetentionPolicy: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "RetentionPolicy",
    modelProperties: {
      enabled: {
        serializedName: "enabled",
        required: true,
        type: {
          name: "Boolean"
        }
      },
      days: {
        constraints: {
          InclusiveMinimum: 0
        },
        serializedName: "days",
        required: true,
        type: {
          name: "Number"
        }
      }
    }
  }
};

export const LogProfileResourcePatch: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "LogProfileResourcePatch",
    modelProperties: {
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      },
      storageAccountId: {
        serializedName: "properties.storageAccountId",
        type: {
          name: "String"
        }
      },
      serviceBusRuleId: {
        serializedName: "properties.serviceBusRuleId",
        type: {
          name: "String"
        }
      },
      locations: {
        serializedName: "properties.locations",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      categories: {
        serializedName: "properties.categories",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      retentionPolicy: {
        serializedName: "properties.retentionPolicy",
        type: {
          name: "Composite",
          className: "RetentionPolicy"
        }
      }
    }
  }
};

export const LogProfileCollection: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "LogProfileCollection",
    modelProperties: {
      value: {
        serializedName: "value",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "LogProfileResource"
            }
          }
        }
      }
    }
  }
};

export const MetricSettings: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricSettings",
    modelProperties: {
      timeGrain: {
        serializedName: "timeGrain",
        type: {
          name: "TimeSpan"
        }
      },
      category: {
        serializedName: "category",
        type: {
          name: "String"
        }
      },
      enabled: {
        serializedName: "enabled",
        required: true,
        type: {
          name: "Boolean"
        }
      },
      retentionPolicy: {
        serializedName: "retentionPolicy",
        type: {
          name: "Composite",
          className: "RetentionPolicy"
        }
      }
    }
  }
};

export const LogSettings: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "LogSettings",
    modelProperties: {
      category: {
        serializedName: "category",
        type: {
          name: "String"
        }
      },
      enabled: {
        serializedName: "enabled",
        required: true,
        type: {
          name: "Boolean"
        }
      },
      retentionPolicy: {
        serializedName: "retentionPolicy",
        type: {
          name: "Composite",
          className: "RetentionPolicy"
        }
      }
    }
  }
};

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

export const DiagnosticSettingsResourceCollection: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DiagnosticSettingsResourceCollection",
    modelProperties: {
      value: {
        serializedName: "value",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "DiagnosticSettingsResource"
            }
          }
        }
      }
    }
  }
};

export const DiagnosticSettingsCategoryResourceCollection: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DiagnosticSettingsCategoryResourceCollection",
    modelProperties: {
      value: {
        serializedName: "value",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "DiagnosticSettingsCategoryResource"
            }
          }
        }
      }
    }
  }
};

export const EmailReceiver: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "EmailReceiver",
    modelProperties: {
      name: {
        serializedName: "name",
        required: true,
        type: {
          name: "String"
        }
      },
      emailAddress: {
        serializedName: "emailAddress",
        required: true,
        type: {
          name: "String"
        }
      },
      useCommonAlertSchema: {
        defaultValue: false,
        serializedName: "useCommonAlertSchema",
        type: {
          name: "Boolean"
        }
      },
      status: {
        serializedName: "status",
        readOnly: true,
        type: {
          name: "Enum",
          allowedValues: ["NotSpecified", "Enabled", "Disabled"]
        }
      }
    }
  }
};

export const SmsReceiver: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "SmsReceiver",
    modelProperties: {
      name: {
        serializedName: "name",
        required: true,
        type: {
          name: "String"
        }
      },
      countryCode: {
        serializedName: "countryCode",
        required: true,
        type: {
          name: "String"
        }
      },
      phoneNumber: {
        serializedName: "phoneNumber",
        required: true,
        type: {
          name: "String"
        }
      },
      status: {
        serializedName: "status",
        readOnly: true,
        type: {
          name: "Enum",
          allowedValues: ["NotSpecified", "Enabled", "Disabled"]
        }
      }
    }
  }
};

export const WebhookReceiver: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "WebhookReceiver",
    modelProperties: {
      name: {
        serializedName: "name",
        required: true,
        type: {
          name: "String"
        }
      },
      serviceUri: {
        serializedName: "serviceUri",
        required: true,
        type: {
          name: "String"
        }
      },
      useCommonAlertSchema: {
        defaultValue: false,
        serializedName: "useCommonAlertSchema",
        type: {
          name: "Boolean"
        }
      },
      useAadAuth: {
        defaultValue: false,
        serializedName: "useAadAuth",
        type: {
          name: "Boolean"
        }
      },
      objectId: {
        serializedName: "objectId",
        type: {
          name: "String"
        }
      },
      identifierUri: {
        serializedName: "identifierUri",
        type: {
          name: "String"
        }
      },
      tenantId: {
        serializedName: "tenantId",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ItsmReceiver: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ItsmReceiver",
    modelProperties: {
      name: {
        serializedName: "name",
        required: true,
        type: {
          name: "String"
        }
      },
      workspaceId: {
        serializedName: "workspaceId",
        required: true,
        type: {
          name: "String"
        }
      },
      connectionId: {
        serializedName: "connectionId",
        required: true,
        type: {
          name: "String"
        }
      },
      ticketConfiguration: {
        serializedName: "ticketConfiguration",
        required: true,
        type: {
          name: "String"
        }
      },
      region: {
        serializedName: "region",
        required: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const AzureAppPushReceiver: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "AzureAppPushReceiver",
    modelProperties: {
      name: {
        serializedName: "name",
        required: true,
        type: {
          name: "String"
        }
      },
      emailAddress: {
        serializedName: "emailAddress",
        required: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const AutomationRunbookReceiver: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "AutomationRunbookReceiver",
    modelProperties: {
      automationAccountId: {
        serializedName: "automationAccountId",
        required: true,
        type: {
          name: "String"
        }
      },
      runbookName: {
        serializedName: "runbookName",
        required: true,
        type: {
          name: "String"
        }
      },
      webhookResourceId: {
        serializedName: "webhookResourceId",
        required: true,
        type: {
          name: "String"
        }
      },
      isGlobalRunbook: {
        serializedName: "isGlobalRunbook",
        required: true,
        type: {
          name: "Boolean"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      serviceUri: {
        serializedName: "serviceUri",
        type: {
          name: "String"
        }
      },
      useCommonAlertSchema: {
        defaultValue: false,
        serializedName: "useCommonAlertSchema",
        type: {
          name: "Boolean"
        }
      }
    }
  }
};

export const VoiceReceiver: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "VoiceReceiver",
    modelProperties: {
      name: {
        serializedName: "name",
        required: true,
        type: {
          name: "String"
        }
      },
      countryCode: {
        serializedName: "countryCode",
        required: true,
        type: {
          name: "String"
        }
      },
      phoneNumber: {
        serializedName: "phoneNumber",
        required: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const LogicAppReceiver: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "LogicAppReceiver",
    modelProperties: {
      name: {
        serializedName: "name",
        required: true,
        type: {
          name: "String"
        }
      },
      resourceId: {
        serializedName: "resourceId",
        required: true,
        type: {
          name: "String"
        }
      },
      callbackUrl: {
        serializedName: "callbackUrl",
        required: true,
        type: {
          name: "String"
        }
      },
      useCommonAlertSchema: {
        defaultValue: false,
        serializedName: "useCommonAlertSchema",
        type: {
          name: "Boolean"
        }
      }
    }
  }
};

export const AzureFunctionReceiver: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "AzureFunctionReceiver",
    modelProperties: {
      name: {
        serializedName: "name",
        required: true,
        type: {
          name: "String"
        }
      },
      functionAppResourceId: {
        serializedName: "functionAppResourceId",
        required: true,
        type: {
          name: "String"
        }
      },
      functionName: {
        serializedName: "functionName",
        required: true,
        type: {
          name: "String"
        }
      },
      httpTriggerUrl: {
        serializedName: "httpTriggerUrl",
        required: true,
        type: {
          name: "String"
        }
      },
      useCommonAlertSchema: {
        defaultValue: false,
        serializedName: "useCommonAlertSchema",
        type: {
          name: "Boolean"
        }
      }
    }
  }
};

export const ArmRoleReceiver: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ArmRoleReceiver",
    modelProperties: {
      name: {
        serializedName: "name",
        required: true,
        type: {
          name: "String"
        }
      },
      roleId: {
        serializedName: "roleId",
        required: true,
        type: {
          name: "String"
        }
      },
      useCommonAlertSchema: {
        defaultValue: false,
        serializedName: "useCommonAlertSchema",
        type: {
          name: "Boolean"
        }
      }
    }
  }
};

export const EventHubReceiver: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "EventHubReceiver",
    modelProperties: {
      name: {
        serializedName: "name",
        required: true,
        type: {
          name: "String"
        }
      },
      eventHubNameSpace: {
        serializedName: "eventHubNameSpace",
        required: true,
        type: {
          name: "String"
        }
      },
      eventHubName: {
        serializedName: "eventHubName",
        required: true,
        type: {
          name: "String"
        }
      },
      useCommonAlertSchema: {
        defaultValue: false,
        serializedName: "useCommonAlertSchema",
        type: {
          name: "Boolean"
        }
      },
      tenantId: {
        serializedName: "tenantId",
        type: {
          name: "String"
        }
      },
      subscriptionId: {
        serializedName: "subscriptionId",
        required: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const AzureResource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "AzureResource",
    modelProperties: {
      id: {
        serializedName: "id",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      type: {
        serializedName: "type",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      kind: {
        serializedName: "kind",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      identity: {
        serializedName: "identity",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      location: {
        serializedName: "location",
        required: true,
        type: {
          name: "String"
        }
      },
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      }
    }
  }
};

export const ActionGroupPatchBody: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ActionGroupPatchBody",
    modelProperties: {
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      },
      enabled: {
        defaultValue: true,
        serializedName: "properties.enabled",
        type: {
          name: "Boolean"
        }
      }
    }
  }
};

export const NotificationRequestBody: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "NotificationRequestBody",
    modelProperties: {
      alertType: {
        constraints: {
          MaxLength: 30
        },
        serializedName: "alertType",
        required: true,
        type: {
          name: "String"
        }
      },
      emailReceivers: {
        serializedName: "emailReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "EmailReceiver"
            }
          }
        }
      },
      smsReceivers: {
        serializedName: "smsReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "SmsReceiver"
            }
          }
        }
      },
      webhookReceivers: {
        serializedName: "webhookReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "WebhookReceiver"
            }
          }
        }
      },
      itsmReceivers: {
        serializedName: "itsmReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ItsmReceiver"
            }
          }
        }
      },
      azureAppPushReceivers: {
        serializedName: "azureAppPushReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "AzureAppPushReceiver"
            }
          }
        }
      },
      automationRunbookReceivers: {
        serializedName: "automationRunbookReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "AutomationRunbookReceiver"
            }
          }
        }
      },
      voiceReceivers: {
        serializedName: "voiceReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "VoiceReceiver"
            }
          }
        }
      },
      logicAppReceivers: {
        serializedName: "logicAppReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "LogicAppReceiver"
            }
          }
        }
      },
      azureFunctionReceivers: {
        serializedName: "azureFunctionReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "AzureFunctionReceiver"
            }
          }
        }
      },
      armRoleReceivers: {
        serializedName: "armRoleReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ArmRoleReceiver"
            }
          }
        }
      },
      eventHubReceivers: {
        serializedName: "eventHubReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "EventHubReceiver"
            }
          }
        }
      }
    }
  }
};

export const TestNotificationResponse: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "TestNotificationResponse",
    modelProperties: {
      notificationId: {
        serializedName: "notificationId",
        required: true,
        type: {
          name: "String"
        }
      },
      correlationId: {
        serializedName: "correlationId",
        required: true,
        type: {
          name: "String"
        }
      },
      createdTime: {
        serializedName: "createdTime",
        required: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const TestNotificationDetailsResponse: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "TestNotificationDetailsResponse",
    modelProperties: {
      context: {
        serializedName: "Context",
        type: {
          name: "Composite",
          className: "Context"
        }
      },
      state: {
        serializedName: "State",
        required: true,
        type: {
          name: "String"
        }
      },
      completedTime: {
        serializedName: "CompletedTime",
        type: {
          name: "String"
        }
      },
      createdTime: {
        serializedName: "CreatedTime",
        type: {
          name: "String"
        }
      },
      actionDetails: {
        serializedName: "ActionDetails",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ActionDetail"
            }
          }
        }
      }
    }
  }
};

export const Context: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "Context",
    modelProperties: {
      notificationSource: {
        serializedName: "NotificationSource",
        type: {
          name: "String"
        }
      },
      contextType: {
        serializedName: "ContextType",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ActionDetail: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ActionDetail",
    modelProperties: {
      mechanismType: {
        serializedName: "MechanismType",
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "Name",
        type: {
          name: "String"
        }
      },
      status: {
        serializedName: "Status",
        type: {
          name: "String"
        }
      },
      subState: {
        serializedName: "SubState",
        type: {
          name: "String"
        }
      },
      sendTime: {
        serializedName: "SendTime",
        type: {
          name: "String"
        }
      },
      detail: {
        serializedName: "Detail",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ActionGroupList: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ActionGroupList",
    modelProperties: {
      value: {
        serializedName: "value",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ActionGroupResource"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const EnableRequest: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "EnableRequest",
    modelProperties: {
      receiverName: {
        serializedName: "receiverName",
        required: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const EventDataCollection: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "EventDataCollection",
    modelProperties: {
      value: {
        serializedName: "value",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "EventData"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const EventData: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "EventData",
    modelProperties: {
      authorization: {
        serializedName: "authorization",
        type: {
          name: "Composite",
          className: "SenderAuthorization"
        }
      },
      claims: {
        serializedName: "claims",
        readOnly: true,
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      },
      caller: {
        serializedName: "caller",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      description: {
        serializedName: "description",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      id: {
        serializedName: "id",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      eventDataId: {
        serializedName: "eventDataId",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      correlationId: {
        serializedName: "correlationId",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      eventName: {
        serializedName: "eventName",
        type: {
          name: "Composite",
          className: "LocalizableString"
        }
      },
      category: {
        serializedName: "category",
        type: {
          name: "Composite",
          className: "LocalizableString"
        }
      },
      httpRequest: {
        serializedName: "httpRequest",
        type: {
          name: "Composite",
          className: "HttpRequestInfo"
        }
      },
      level: {
        serializedName: "level",
        readOnly: true,
        type: {
          name: "Enum",
          allowedValues: [
            "Critical",
            "Error",
            "Warning",
            "Informational",
            "Verbose"
          ]
        }
      },
      resourceGroupName: {
        serializedName: "resourceGroupName",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      resourceProviderName: {
        serializedName: "resourceProviderName",
        type: {
          name: "Composite",
          className: "LocalizableString"
        }
      },
      resourceId: {
        serializedName: "resourceId",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      resourceType: {
        serializedName: "resourceType",
        type: {
          name: "Composite",
          className: "LocalizableString"
        }
      },
      operationId: {
        serializedName: "operationId",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      operationName: {
        serializedName: "operationName",
        type: {
          name: "Composite",
          className: "LocalizableString"
        }
      },
      properties: {
        serializedName: "properties",
        readOnly: true,
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      },
      status: {
        serializedName: "status",
        type: {
          name: "Composite",
          className: "LocalizableString"
        }
      },
      subStatus: {
        serializedName: "subStatus",
        type: {
          name: "Composite",
          className: "LocalizableString"
        }
      },
      eventTimestamp: {
        serializedName: "eventTimestamp",
        readOnly: true,
        type: {
          name: "DateTime"
        }
      },
      submissionTimestamp: {
        serializedName: "submissionTimestamp",
        readOnly: true,
        type: {
          name: "DateTime"
        }
      },
      subscriptionId: {
        serializedName: "subscriptionId",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      tenantId: {
        serializedName: "tenantId",
        readOnly: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SenderAuthorization: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "SenderAuthorization",
    modelProperties: {
      action: {
        serializedName: "action",
        type: {
          name: "String"
        }
      },
      role: {
        serializedName: "role",
        type: {
          name: "String"
        }
      },
      scope: {
        serializedName: "scope",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const LocalizableString: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "LocalizableString",
    modelProperties: {
      value: {
        serializedName: "value",
        required: true,
        type: {
          name: "String"
        }
      },
      localizedValue: {
        serializedName: "localizedValue",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const HttpRequestInfo: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "HttpRequestInfo",
    modelProperties: {
      clientRequestId: {
        serializedName: "clientRequestId",
        type: {
          name: "String"
        }
      },
      clientIpAddress: {
        serializedName: "clientIpAddress",
        type: {
          name: "String"
        }
      },
      method: {
        serializedName: "method",
        type: {
          name: "String"
        }
      },
      uri: {
        serializedName: "uri",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const EventCategoryCollection: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "EventCategoryCollection",
    modelProperties: {
      value: {
        serializedName: "value",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "LocalizableString"
            }
          }
        }
      }
    }
  }
};

export const MetricDefinitionCollection: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricDefinitionCollection",
    modelProperties: {
      value: {
        serializedName: "value",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "MetricDefinition"
            }
          }
        }
      }
    }
  }
};

export const MetricDefinition: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricDefinition",
    modelProperties: {
      isDimensionRequired: {
        serializedName: "isDimensionRequired",
        type: {
          name: "Boolean"
        }
      },
      resourceId: {
        serializedName: "resourceId",
        type: {
          name: "String"
        }
      },
      namespace: {
        serializedName: "namespace",
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "Composite",
          className: "LocalizableString"
        }
      },
      displayDescription: {
        serializedName: "displayDescription",
        type: {
          name: "String"
        }
      },
      category: {
        serializedName: "category",
        type: {
          name: "String"
        }
      },
      metricClass: {
        serializedName: "metricClass",
        type: {
          name: "String"
        }
      },
      unit: {
        serializedName: "unit",
        type: {
          name: "String"
        }
      },
      primaryAggregationType: {
        serializedName: "primaryAggregationType",
        type: {
          name: "Enum",
          allowedValues: [
            "None",
            "Average",
            "Count",
            "Minimum",
            "Maximum",
            "Total"
          ]
        }
      },
      supportedAggregationTypes: {
        serializedName: "supportedAggregationTypes",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Enum",
              allowedValues: [
                "None",
                "Average",
                "Count",
                "Minimum",
                "Maximum",
                "Total"
              ]
            }
          }
        }
      },
      metricAvailabilities: {
        serializedName: "metricAvailabilities",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "MetricAvailability"
            }
          }
        }
      },
      id: {
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      dimensions: {
        serializedName: "dimensions",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "LocalizableString"
            }
          }
        }
      }
    }
  }
};

export const MetricAvailability: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricAvailability",
    modelProperties: {
      timeGrain: {
        serializedName: "timeGrain",
        type: {
          name: "TimeSpan"
        }
      },
      retention: {
        serializedName: "retention",
        type: {
          name: "TimeSpan"
        }
      }
    }
  }
};

export const Response: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "Response",
    modelProperties: {
      cost: {
        constraints: {
          InclusiveMinimum: 0
        },
        serializedName: "cost",
        type: {
          name: "Number"
        }
      },
      timespan: {
        serializedName: "timespan",
        required: true,
        type: {
          name: "String"
        }
      },
      interval: {
        serializedName: "interval",
        type: {
          name: "TimeSpan"
        }
      },
      namespace: {
        serializedName: "namespace",
        type: {
          name: "String"
        }
      },
      resourceregion: {
        serializedName: "resourceregion",
        type: {
          name: "String"
        }
      },
      value: {
        serializedName: "value",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Metric"
            }
          }
        }
      }
    }
  }
};

export const Metric: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "Metric",
    modelProperties: {
      id: {
        serializedName: "id",
        required: true,
        type: {
          name: "String"
        }
      },
      type: {
        serializedName: "type",
        required: true,
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "Composite",
          className: "LocalizableString"
        }
      },
      displayDescription: {
        serializedName: "displayDescription",
        type: {
          name: "String"
        }
      },
      errorCode: {
        serializedName: "errorCode",
        type: {
          name: "String"
        }
      },
      errorMessage: {
        serializedName: "errorMessage",
        type: {
          name: "String"
        }
      },
      unit: {
        serializedName: "unit",
        required: true,
        type: {
          name: "String"
        }
      },
      timeseries: {
        serializedName: "timeseries",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "TimeSeriesElement"
            }
          }
        }
      }
    }
  }
};

export const TimeSeriesElement: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "TimeSeriesElement",
    modelProperties: {
      metadatavalues: {
        serializedName: "metadatavalues",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "MetadataValue"
            }
          }
        }
      },
      data: {
        serializedName: "data",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "MetricValue"
            }
          }
        }
      }
    }
  }
};

export const MetadataValue: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetadataValue",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "Composite",
          className: "LocalizableString"
        }
      },
      value: {
        serializedName: "value",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const MetricValue: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricValue",
    modelProperties: {
      timeStamp: {
        serializedName: "timeStamp",
        required: true,
        type: {
          name: "DateTime"
        }
      },
      average: {
        serializedName: "average",
        type: {
          name: "Number"
        }
      },
      minimum: {
        serializedName: "minimum",
        type: {
          name: "Number"
        }
      },
      maximum: {
        serializedName: "maximum",
        type: {
          name: "Number"
        }
      },
      total: {
        serializedName: "total",
        type: {
          name: "Number"
        }
      },
      count: {
        serializedName: "count",
        type: {
          name: "Number"
        }
      }
    }
  }
};

export const MetricBaselinesResponse: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricBaselinesResponse",
    modelProperties: {
      value: {
        serializedName: "value",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "SingleMetricBaseline"
            }
          }
        }
      }
    }
  }
};

export const SingleMetricBaseline: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "SingleMetricBaseline",
    modelProperties: {
      id: {
        serializedName: "id",
        required: true,
        type: {
          name: "String"
        }
      },
      type: {
        serializedName: "type",
        required: true,
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        required: true,
        type: {
          name: "String"
        }
      },
      timespan: {
        serializedName: "properties.timespan",
        required: true,
        type: {
          name: "String"
        }
      },
      interval: {
        serializedName: "properties.interval",
        required: true,
        type: {
          name: "TimeSpan"
        }
      },
      namespace: {
        serializedName: "properties.namespace",
        type: {
          name: "String"
        }
      },
      baselines: {
        serializedName: "properties.baselines",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "TimeSeriesBaseline"
            }
          }
        }
      }
    }
  }
};

export const TimeSeriesBaseline: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "TimeSeriesBaseline",
    modelProperties: {
      aggregation: {
        serializedName: "aggregation",
        required: true,
        type: {
          name: "String"
        }
      },
      dimensions: {
        serializedName: "dimensions",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "MetricSingleDimension"
            }
          }
        }
      },
      timestamps: {
        serializedName: "timestamps",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "DateTime"
            }
          }
        }
      },
      data: {
        serializedName: "data",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "SingleBaseline"
            }
          }
        }
      },
      metadataValues: {
        serializedName: "metadataValues",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "BaselineMetadata"
            }
          }
        }
      }
    }
  }
};

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

export const SingleBaseline: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "SingleBaseline",
    modelProperties: {
      sensitivity: {
        serializedName: "sensitivity",
        required: true,
        type: {
          name: "String"
        }
      },
      lowThresholds: {
        serializedName: "lowThresholds",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Number"
            }
          }
        }
      },
      highThresholds: {
        serializedName: "highThresholds",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Number"
            }
          }
        }
      }
    }
  }
};

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

export const MetricAlertResourceCollection: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricAlertResourceCollection",
    modelProperties: {
      value: {
        serializedName: "value",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "MetricAlertResource"
            }
          }
        }
      }
    }
  }
};

export const MetricAlertCriteria: coreClient.CompositeMapper = {
  serializedName: "MetricAlertCriteria",
  type: {
    name: "Composite",
    className: "MetricAlertCriteria",
    uberParent: "MetricAlertCriteria",
    additionalProperties: { type: { name: "Object" } },
    polymorphicDiscriminator: {
      serializedName: "odata\\.type",
      clientName: "odataType"
    },
    modelProperties: {
      odataType: {
        serializedName: "odata\\.type",
        required: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const MetricAlertAction: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricAlertAction",
    modelProperties: {
      actionGroupId: {
        serializedName: "actionGroupId",
        type: {
          name: "String"
        }
      },
      webHookProperties: {
        serializedName: "webHookProperties",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      }
    }
  }
};

export const MetricAlertResourcePatch: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricAlertResourcePatch",
    modelProperties: {
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      severity: {
        serializedName: "properties.severity",
        type: {
          name: "Number"
        }
      },
      enabled: {
        serializedName: "properties.enabled",
        type: {
          name: "Boolean"
        }
      },
      scopes: {
        serializedName: "properties.scopes",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      evaluationFrequency: {
        serializedName: "properties.evaluationFrequency",
        type: {
          name: "TimeSpan"
        }
      },
      windowSize: {
        serializedName: "properties.windowSize",
        type: {
          name: "TimeSpan"
        }
      },
      targetResourceType: {
        serializedName: "properties.targetResourceType",
        type: {
          name: "String"
        }
      },
      targetResourceRegion: {
        serializedName: "properties.targetResourceRegion",
        type: {
          name: "String"
        }
      },
      criteria: {
        serializedName: "properties.criteria",
        type: {
          name: "Composite",
          className: "MetricAlertCriteria"
        }
      },
      autoMitigate: {
        serializedName: "properties.autoMitigate",
        type: {
          name: "Boolean"
        }
      },
      actions: {
        serializedName: "properties.actions",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "MetricAlertAction"
            }
          }
        }
      },
      lastUpdatedTime: {
        serializedName: "properties.lastUpdatedTime",
        readOnly: true,
        type: {
          name: "DateTime"
        }
      },
      isMigrated: {
        serializedName: "properties.isMigrated",
        readOnly: true,
        type: {
          name: "Boolean"
        }
      }
    }
  }
};

export const MetricAlertStatusCollection: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricAlertStatusCollection",
    modelProperties: {
      value: {
        serializedName: "value",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "MetricAlertStatus"
            }
          }
        }
      }
    }
  }
};

export const MetricAlertStatus: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricAlertStatus",
    modelProperties: {
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      id: {
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      type: {
        serializedName: "type",
        type: {
          name: "String"
        }
      },
      properties: {
        serializedName: "properties",
        type: {
          name: "Composite",
          className: "MetricAlertStatusProperties"
        }
      }
    }
  }
};

export const MetricAlertStatusProperties: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricAlertStatusProperties",
    modelProperties: {
      dimensions: {
        serializedName: "dimensions",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      },
      status: {
        serializedName: "status",
        type: {
          name: "String"
        }
      },
      timestamp: {
        serializedName: "timestamp",
        type: {
          name: "DateTime"
        }
      }
    }
  }
};

export const Source: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "Source",
    modelProperties: {
      query: {
        serializedName: "query",
        type: {
          name: "String"
        }
      },
      authorizedResources: {
        serializedName: "authorizedResources",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      dataSourceId: {
        serializedName: "dataSourceId",
        required: true,
        type: {
          name: "String"
        }
      },
      queryType: {
        serializedName: "queryType",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const Schedule: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "Schedule",
    modelProperties: {
      frequencyInMinutes: {
        serializedName: "frequencyInMinutes",
        required: true,
        type: {
          name: "Number"
        }
      },
      timeWindowInMinutes: {
        serializedName: "timeWindowInMinutes",
        required: true,
        type: {
          name: "Number"
        }
      }
    }
  }
};

export const Action: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "Action",
    uberParent: "Action",
    polymorphicDiscriminator: {
      serializedName: "odata\\.type",
      clientName: "odataType"
    },
    modelProperties: {
      odataType: {
        serializedName: "odata\\.type",
        required: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ResourceAutoGenerated: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ResourceAutoGenerated",
    modelProperties: {
      id: {
        serializedName: "id",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      type: {
        serializedName: "type",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      location: {
        serializedName: "location",
        required: true,
        type: {
          name: "String"
        }
      },
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      },
      kind: {
        serializedName: "kind",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      etag: {
        serializedName: "etag",
        readOnly: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ErrorContract: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ErrorContract",
    modelProperties: {
      error: {
        serializedName: "error",
        type: {
          name: "Composite",
          className: "ErrorResponse"
        }
      }
    }
  }
};

export const LogSearchRuleResourcePatch: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "LogSearchRuleResourcePatch",
    modelProperties: {
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      },
      enabled: {
        serializedName: "properties.enabled",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const LogSearchRuleResourceCollection: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "LogSearchRuleResourceCollection",
    modelProperties: {
      value: {
        serializedName: "value",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "LogSearchRuleResource"
            }
          }
        }
      }
    }
  }
};

export const MetricNamespaceCollection: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricNamespaceCollection",
    modelProperties: {
      value: {
        serializedName: "value",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "MetricNamespace"
            }
          }
        }
      }
    }
  }
};

export const MetricNamespace: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricNamespace",
    modelProperties: {
      id: {
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      type: {
        serializedName: "type",
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      classification: {
        serializedName: "classification",
        type: {
          name: "String"
        }
      },
      properties: {
        serializedName: "properties",
        type: {
          name: "Composite",
          className: "MetricNamespaceName"
        }
      }
    }
  }
};

export const MetricNamespaceName: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricNamespaceName",
    modelProperties: {
      metricNamespaceName: {
        serializedName: "metricNamespaceName",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DataContainer: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataContainer",
    modelProperties: {
      workspace: {
        serializedName: "workspace",
        type: {
          name: "Composite",
          className: "WorkspaceInfo"
        }
      }
    }
  }
};

export const WorkspaceInfo: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "WorkspaceInfo",
    modelProperties: {
      id: {
        serializedName: "id",
        required: true,
        type: {
          name: "String"
        }
      },
      location: {
        serializedName: "location",
        required: true,
        type: {
          name: "String"
        }
      },
      customerId: {
        serializedName: "properties.customerId",
        required: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

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

export const ResponseWithError: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ResponseWithError",
    modelProperties: {
      error: {
        serializedName: "error",
        type: {
          name: "Composite",
          className: "ErrorModel"
        }
      }
    }
  }
};

export const ErrorModel: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ErrorModel",
    modelProperties: {
      code: {
        serializedName: "code",
        required: true,
        type: {
          name: "String"
        }
      },
      message: {
        serializedName: "message",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const AzureMonitorPrivateLinkScopeListResult: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "AzureMonitorPrivateLinkScopeListResult",
    modelProperties: {
      value: {
        serializedName: "value",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "AzureMonitorPrivateLinkScope"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const PrivateEndpointProperty: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "PrivateEndpointProperty",
    modelProperties: {
      id: {
        serializedName: "id",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const PrivateLinkServiceConnectionStateProperty: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "PrivateLinkServiceConnectionStateProperty",
    modelProperties: {
      status: {
        serializedName: "status",
        required: true,
        type: {
          name: "String"
        }
      },
      description: {
        serializedName: "description",
        required: true,
        type: {
          name: "String"
        }
      },
      actionsRequired: {
        serializedName: "actionsRequired",
        readOnly: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const PrivateLinkScopesResource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "PrivateLinkScopesResource",
    modelProperties: {
      id: {
        serializedName: "id",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      type: {
        serializedName: "type",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      location: {
        serializedName: "location",
        required: true,
        type: {
          name: "String"
        }
      },
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      }
    }
  }
};

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

export const OperationStatus: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "OperationStatus",
    modelProperties: {
      id: {
        serializedName: "id",
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      },
      startTime: {
        serializedName: "startTime",
        nullable: true,
        type: {
          name: "DateTime"
        }
      },
      endTime: {
        serializedName: "endTime",
        nullable: true,
        type: {
          name: "DateTime"
        }
      },
      status: {
        serializedName: "status",
        type: {
          name: "String"
        }
      },
      error: {
        serializedName: "error",
        type: {
          name: "Composite",
          className: "ErrorResponseCommon"
        }
      }
    }
  }
};

export const ErrorAdditionalInfo: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ErrorAdditionalInfo",
    modelProperties: {
      type: {
        serializedName: "type",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      info: {
        serializedName: "info",
        readOnly: true,
        type: {
          name: "Dictionary",
          value: { type: { name: "any" } }
        }
      }
    }
  }
};

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

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

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

export const ActivityLogAlertAllOfCondition: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ActivityLogAlertAllOfCondition",
    modelProperties: {
      allOf: {
        serializedName: "allOf",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ActivityLogAlertLeafCondition"
            }
          }
        }
      }
    }
  }
};

export const ActivityLogAlertLeafCondition: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ActivityLogAlertLeafCondition",
    modelProperties: {
      field: {
        serializedName: "field",
        required: true,
        type: {
          name: "String"
        }
      },
      equals: {
        serializedName: "equals",
        required: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ActivityLogAlertActionList: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ActivityLogAlertActionList",
    modelProperties: {
      actionGroups: {
        serializedName: "actionGroups",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ActivityLogAlertActionGroup"
            }
          }
        }
      }
    }
  }
};

export const ActivityLogAlertActionGroup: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ActivityLogAlertActionGroup",
    modelProperties: {
      actionGroupId: {
        serializedName: "actionGroupId",
        required: true,
        type: {
          name: "String"
        }
      },
      webhookProperties: {
        serializedName: "webhookProperties",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      }
    }
  }
};

export const ActivityLogAlertPatchBody: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ActivityLogAlertPatchBody",
    modelProperties: {
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      },
      enabled: {
        defaultValue: true,
        serializedName: "properties.enabled",
        type: {
          name: "Boolean"
        }
      }
    }
  }
};

export const ActivityLogAlertList: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ActivityLogAlertList",
    modelProperties: {
      value: {
        serializedName: "value",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ActivityLogAlertResource"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DataCollectionEndpointResourceListResult: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionEndpointResourceListResult",
    modelProperties: {
      value: {
        serializedName: "value",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "DataCollectionEndpointResource"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DataCollectionEndpointResource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionEndpointResource",
    modelProperties: {
      location: {
        serializedName: "location",
        required: true,
        type: {
          name: "String"
        }
      },
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      },
      kind: {
        serializedName: "kind",
        type: {
          name: "String"
        }
      },
      id: {
        serializedName: "id",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      type: {
        serializedName: "type",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      etag: {
        serializedName: "etag",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      systemData: {
        serializedName: "systemData",
        type: {
          name: "Composite",
          className: "DataCollectionEndpointResourceSystemData"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      immutableId: {
        serializedName: "properties.immutableId",
        type: {
          name: "String"
        }
      },
      configurationAccess: {
        serializedName: "properties.configurationAccess",
        type: {
          name: "Composite",
          className: "DataCollectionEndpointConfigurationAccess"
        }
      },
      logsIngestion: {
        serializedName: "properties.logsIngestion",
        type: {
          name: "Composite",
          className: "DataCollectionEndpointLogsIngestion"
        }
      },
      networkAcls: {
        serializedName: "properties.networkAcls",
        type: {
          name: "Composite",
          className: "DataCollectionEndpointNetworkAcls"
        }
      },
      provisioningState: {
        serializedName: "properties.provisioningState",
        readOnly: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DataCollectionEndpoint: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionEndpoint",
    modelProperties: {
      description: {
        serializedName: "description",
        type: {
          name: "String"
        }
      },
      immutableId: {
        serializedName: "immutableId",
        type: {
          name: "String"
        }
      },
      configurationAccess: {
        serializedName: "configurationAccess",
        type: {
          name: "Composite",
          className: "DataCollectionEndpointConfigurationAccess"
        }
      },
      logsIngestion: {
        serializedName: "logsIngestion",
        type: {
          name: "Composite",
          className: "DataCollectionEndpointLogsIngestion"
        }
      },
      networkAcls: {
        serializedName: "networkAcls",
        type: {
          name: "Composite",
          className: "DataCollectionEndpointNetworkAcls"
        }
      },
      provisioningState: {
        serializedName: "provisioningState",
        readOnly: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ConfigurationAccessEndpointSpec: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ConfigurationAccessEndpointSpec",
    modelProperties: {
      endpoint: {
        serializedName: "endpoint",
        readOnly: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const LogsIngestionEndpointSpec: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "LogsIngestionEndpointSpec",
    modelProperties: {
      endpoint: {
        serializedName: "endpoint",
        readOnly: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const NetworkRuleSet: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "NetworkRuleSet",
    modelProperties: {
      publicNetworkAccess: {
        serializedName: "publicNetworkAccess",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SystemData: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "SystemData",
    modelProperties: {
      createdBy: {
        serializedName: "createdBy",
        type: {
          name: "String"
        }
      },
      createdByType: {
        serializedName: "createdByType",
        type: {
          name: "String"
        }
      },
      createdAt: {
        serializedName: "createdAt",
        type: {
          name: "DateTime"
        }
      },
      lastModifiedBy: {
        serializedName: "lastModifiedBy",
        type: {
          name: "String"
        }
      },
      lastModifiedByType: {
        serializedName: "lastModifiedByType",
        type: {
          name: "String"
        }
      },
      lastModifiedAt: {
        serializedName: "lastModifiedAt",
        type: {
          name: "DateTime"
        }
      }
    }
  }
};

export const ErrorResponseCommonV2: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ErrorResponseCommonV2",
    modelProperties: {
      error: {
        serializedName: "error",
        type: {
          name: "Composite",
          className: "ErrorDetail"
        }
      }
    }
  }
};

export const ErrorDetail: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ErrorDetail",
    modelProperties: {
      code: {
        serializedName: "code",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      message: {
        serializedName: "message",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      target: {
        serializedName: "target",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      details: {
        serializedName: "details",
        readOnly: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ErrorDetail"
            }
          }
        }
      },
      additionalInfo: {
        serializedName: "additionalInfo",
        readOnly: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ErrorAdditionalInfo"
            }
          }
        }
      }
    }
  }
};

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

export const DataCollectionRuleAssociationProxyOnlyResourceListResult: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionRuleAssociationProxyOnlyResourceListResult",
    modelProperties: {
      value: {
        serializedName: "value",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "DataCollectionRuleAssociationProxyOnlyResource"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DataCollectionRuleAssociationProxyOnlyResource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionRuleAssociationProxyOnlyResource",
    modelProperties: {
      id: {
        serializedName: "id",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      type: {
        serializedName: "type",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      etag: {
        serializedName: "etag",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      systemData: {
        serializedName: "systemData",
        type: {
          name: "Composite",
          className: "DataCollectionRuleAssociationProxyOnlyResourceSystemData"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      dataCollectionRuleId: {
        serializedName: "properties.dataCollectionRuleId",
        type: {
          name: "String"
        }
      },
      dataCollectionEndpointId: {
        serializedName: "properties.dataCollectionEndpointId",
        type: {
          name: "String"
        }
      },
      provisioningState: {
        serializedName: "properties.provisioningState",
        readOnly: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DataCollectionRuleAssociation: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionRuleAssociation",
    modelProperties: {
      description: {
        serializedName: "description",
        type: {
          name: "String"
        }
      },
      dataCollectionRuleId: {
        serializedName: "dataCollectionRuleId",
        type: {
          name: "String"
        }
      },
      dataCollectionEndpointId: {
        serializedName: "dataCollectionEndpointId",
        type: {
          name: "String"
        }
      },
      provisioningState: {
        serializedName: "provisioningState",
        readOnly: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DataCollectionRuleResourceListResult: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionRuleResourceListResult",
    modelProperties: {
      value: {
        serializedName: "value",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "DataCollectionRuleResource"
            }
          }
        }
      },
      nextLink: {
        serializedName: "nextLink",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DataCollectionRuleResource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionRuleResource",
    modelProperties: {
      location: {
        serializedName: "location",
        required: true,
        type: {
          name: "String"
        }
      },
      tags: {
        serializedName: "tags",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      },
      kind: {
        serializedName: "kind",
        type: {
          name: "String"
        }
      },
      id: {
        serializedName: "id",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      type: {
        serializedName: "type",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      etag: {
        serializedName: "etag",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      systemData: {
        serializedName: "systemData",
        type: {
          name: "Composite",
          className: "DataCollectionRuleResourceSystemData"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      immutableId: {
        serializedName: "properties.immutableId",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      dataSources: {
        serializedName: "properties.dataSources",
        type: {
          name: "Composite",
          className: "DataCollectionRuleDataSources"
        }
      },
      destinations: {
        serializedName: "properties.destinations",
        type: {
          name: "Composite",
          className: "DataCollectionRuleDestinations"
        }
      },
      dataFlows: {
        serializedName: "properties.dataFlows",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "DataFlow"
            }
          }
        }
      },
      provisioningState: {
        serializedName: "properties.provisioningState",
        readOnly: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DataCollectionRule: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionRule",
    modelProperties: {
      description: {
        serializedName: "description",
        type: {
          name: "String"
        }
      },
      immutableId: {
        serializedName: "immutableId",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      dataSources: {
        serializedName: "dataSources",
        type: {
          name: "Composite",
          className: "DataCollectionRuleDataSources"
        }
      },
      destinations: {
        serializedName: "destinations",
        type: {
          name: "Composite",
          className: "DataCollectionRuleDestinations"
        }
      },
      dataFlows: {
        serializedName: "dataFlows",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "DataFlow"
            }
          }
        }
      },
      provisioningState: {
        serializedName: "provisioningState",
        readOnly: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DataSourcesSpec: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataSourcesSpec",
    modelProperties: {
      performanceCounters: {
        serializedName: "performanceCounters",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "PerfCounterDataSource"
            }
          }
        }
      },
      windowsEventLogs: {
        serializedName: "windowsEventLogs",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "WindowsEventLogDataSource"
            }
          }
        }
      },
      syslog: {
        serializedName: "syslog",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "SyslogDataSource"
            }
          }
        }
      },
      extensions: {
        serializedName: "extensions",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ExtensionDataSource"
            }
          }
        }
      }
    }
  }
};

export const PerfCounterDataSource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "PerfCounterDataSource",
    modelProperties: {
      streams: {
        serializedName: "streams",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      samplingFrequencyInSeconds: {
        serializedName: "samplingFrequencyInSeconds",
        type: {
          name: "Number"
        }
      },
      counterSpecifiers: {
        serializedName: "counterSpecifiers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const WindowsEventLogDataSource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "WindowsEventLogDataSource",
    modelProperties: {
      streams: {
        serializedName: "streams",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      xPathQueries: {
        serializedName: "xPathQueries",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const SyslogDataSource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "SyslogDataSource",
    modelProperties: {
      streams: {
        serializedName: "streams",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      facilityNames: {
        serializedName: "facilityNames",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      logLevels: {
        serializedName: "logLevels",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ExtensionDataSource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ExtensionDataSource",
    modelProperties: {
      streams: {
        serializedName: "streams",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      extensionName: {
        serializedName: "extensionName",
        required: true,
        type: {
          name: "String"
        }
      },
      extensionSettings: {
        serializedName: "extensionSettings",
        type: {
          name: "Dictionary",
          value: { type: { name: "any" } }
        }
      },
      inputDataSources: {
        serializedName: "inputDataSources",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DestinationsSpec: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DestinationsSpec",
    modelProperties: {
      logAnalytics: {
        serializedName: "logAnalytics",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "LogAnalyticsDestination"
            }
          }
        }
      },
      azureMonitorMetrics: {
        serializedName: "azureMonitorMetrics",
        type: {
          name: "Composite",
          className: "DestinationsSpecAzureMonitorMetrics"
        }
      }
    }
  }
};

export const LogAnalyticsDestination: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "LogAnalyticsDestination",
    modelProperties: {
      workspaceResourceId: {
        serializedName: "workspaceResourceId",
        type: {
          name: "String"
        }
      },
      workspaceId: {
        serializedName: "workspaceId",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        type: {
          name: "String"
        }
      }
    }
  }
};

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

export const DataFlow: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataFlow",
    modelProperties: {
      streams: {
        serializedName: "streams",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      destinations: {
        serializedName: "destinations",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const RuleManagementEventClaimsDataSource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "RuleManagementEventClaimsDataSource",
    modelProperties: {
      emailAddress: {
        serializedName: "emailAddress",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ManagementEventAggregationCondition: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ManagementEventAggregationCondition",
    modelProperties: {
      operator: {
        serializedName: "operator",
        type: {
          name: "Enum",
          allowedValues: [
            "GreaterThan",
            "GreaterThanOrEqual",
            "LessThan",
            "LessThanOrEqual"
          ]
        }
      },
      threshold: {
        serializedName: "threshold",
        type: {
          name: "Number"
        }
      },
      windowSize: {
        serializedName: "windowSize",
        type: {
          name: "TimeSpan"
        }
      }
    }
  }
};

export const MultiMetricCriteria: coreClient.CompositeMapper = {
  serializedName: "MultiMetricCriteria",
  type: {
    name: "Composite",
    className: "MultiMetricCriteria",
    uberParent: "MultiMetricCriteria",
    additionalProperties: { type: { name: "Object" } },
    polymorphicDiscriminator: {
      serializedName: "criterionType",
      clientName: "criterionType"
    },
    modelProperties: {
      criterionType: {
        serializedName: "criterionType",
        required: true,
        type: {
          name: "String"
        }
      },
      name: {
        serializedName: "name",
        required: true,
        type: {
          name: "String"
        }
      },
      metricName: {
        serializedName: "metricName",
        required: true,
        type: {
          name: "String"
        }
      },
      metricNamespace: {
        serializedName: "metricNamespace",
        type: {
          name: "String"
        }
      },
      timeAggregation: {
        serializedName: "timeAggregation",
        required: true,
        type: {
          name: "String"
        }
      },
      dimensions: {
        serializedName: "dimensions",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "MetricDimension"
            }
          }
        }
      },
      skipMetricValidation: {
        serializedName: "skipMetricValidation",
        type: {
          name: "Boolean"
        }
      }
    }
  }
};

export const MetricDimension: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricDimension",
    modelProperties: {
      name: {
        serializedName: "name",
        required: true,
        type: {
          name: "String"
        }
      },
      operator: {
        serializedName: "operator",
        required: true,
        type: {
          name: "String"
        }
      },
      values: {
        serializedName: "values",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const DynamicThresholdFailingPeriods: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DynamicThresholdFailingPeriods",
    modelProperties: {
      numberOfEvaluationPeriods: {
        serializedName: "numberOfEvaluationPeriods",
        required: true,
        type: {
          name: "Number"
        }
      },
      minFailingPeriodsToAlert: {
        serializedName: "minFailingPeriodsToAlert",
        required: true,
        type: {
          name: "Number"
        }
      }
    }
  }
};

export const TriggerCondition: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "TriggerCondition",
    modelProperties: {
      thresholdOperator: {
        defaultValue: "GreaterThanOrEqual",
        serializedName: "thresholdOperator",
        required: true,
        type: {
          name: "String"
        }
      },
      threshold: {
        serializedName: "threshold",
        required: true,
        type: {
          name: "Number"
        }
      },
      metricTrigger: {
        serializedName: "metricTrigger",
        type: {
          name: "Composite",
          className: "LogMetricTrigger"
        }
      }
    }
  }
};

export const LogMetricTrigger: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "LogMetricTrigger",
    modelProperties: {
      thresholdOperator: {
        defaultValue: "GreaterThanOrEqual",
        serializedName: "thresholdOperator",
        type: {
          name: "String"
        }
      },
      threshold: {
        serializedName: "threshold",
        type: {
          name: "Number"
        }
      },
      metricTriggerType: {
        defaultValue: "Consecutive",
        serializedName: "metricTriggerType",
        type: {
          name: "String"
        }
      },
      metricColumn: {
        serializedName: "metricColumn",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const AzNsActionGroup: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "AzNsActionGroup",
    modelProperties: {
      actionGroup: {
        serializedName: "actionGroup",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      emailSubject: {
        serializedName: "emailSubject",
        type: {
          name: "String"
        }
      },
      customWebhookPayload: {
        serializedName: "customWebhookPayload",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const Dimension: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "Dimension",
    modelProperties: {
      name: {
        serializedName: "name",
        required: true,
        type: {
          name: "String"
        }
      },
      operator: {
        serializedName: "operator",
        required: true,
        type: {
          name: "String"
        }
      },
      values: {
        serializedName: "values",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const Criteria: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "Criteria",
    modelProperties: {
      metricName: {
        serializedName: "metricName",
        required: true,
        type: {
          name: "String"
        }
      },
      dimensions: {
        serializedName: "dimensions",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Dimension"
            }
          }
        }
      }
    }
  }
};

export const AutoscaleSettingResource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "AutoscaleSettingResource",
    modelProperties: {
      ...Resource.type.modelProperties,
      profiles: {
        constraints: {
          MaxItems: 20
        },
        serializedName: "properties.profiles",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "AutoscaleProfile"
            }
          }
        }
      },
      notifications: {
        serializedName: "properties.notifications",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "AutoscaleNotification"
            }
          }
        }
      },
      enabled: {
        defaultValue: true,
        serializedName: "properties.enabled",
        type: {
          name: "Boolean"
        }
      },
      namePropertiesName: {
        serializedName: "properties.name",
        type: {
          name: "String"
        }
      },
      targetResourceUri: {
        serializedName: "properties.targetResourceUri",
        type: {
          name: "String"
        }
      },
      targetResourceLocation: {
        serializedName: "properties.targetResourceLocation",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const AlertRuleResource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "AlertRuleResource",
    modelProperties: {
      ...Resource.type.modelProperties,
      namePropertiesName: {
        serializedName: "properties.name",
        required: true,
        type: {
          name: "String"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      provisioningState: {
        serializedName: "properties.provisioningState",
        type: {
          name: "String"
        }
      },
      isEnabled: {
        serializedName: "properties.isEnabled",
        required: true,
        type: {
          name: "Boolean"
        }
      },
      condition: {
        serializedName: "properties.condition",
        type: {
          name: "Composite",
          className: "RuleCondition"
        }
      },
      action: {
        serializedName: "properties.action",
        type: {
          name: "Composite",
          className: "RuleAction"
        }
      },
      actions: {
        serializedName: "properties.actions",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "RuleAction"
            }
          }
        }
      },
      lastUpdatedTime: {
        serializedName: "properties.lastUpdatedTime",
        readOnly: true,
        type: {
          name: "DateTime"
        }
      }
    }
  }
};

export const LogProfileResource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "LogProfileResource",
    modelProperties: {
      ...Resource.type.modelProperties,
      storageAccountId: {
        serializedName: "properties.storageAccountId",
        type: {
          name: "String"
        }
      },
      serviceBusRuleId: {
        serializedName: "properties.serviceBusRuleId",
        type: {
          name: "String"
        }
      },
      locations: {
        serializedName: "properties.locations",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      categories: {
        serializedName: "properties.categories",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      retentionPolicy: {
        serializedName: "properties.retentionPolicy",
        type: {
          name: "Composite",
          className: "RetentionPolicy"
        }
      }
    }
  }
};

export const MetricAlertResource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "MetricAlertResource",
    modelProperties: {
      ...Resource.type.modelProperties,
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      severity: {
        serializedName: "properties.severity",
        required: true,
        type: {
          name: "Number"
        }
      },
      enabled: {
        serializedName: "properties.enabled",
        required: true,
        type: {
          name: "Boolean"
        }
      },
      scopes: {
        serializedName: "properties.scopes",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      evaluationFrequency: {
        serializedName: "properties.evaluationFrequency",
        required: true,
        type: {
          name: "TimeSpan"
        }
      },
      windowSize: {
        serializedName: "properties.windowSize",
        required: true,
        type: {
          name: "TimeSpan"
        }
      },
      targetResourceType: {
        serializedName: "properties.targetResourceType",
        type: {
          name: "String"
        }
      },
      targetResourceRegion: {
        serializedName: "properties.targetResourceRegion",
        type: {
          name: "String"
        }
      },
      criteria: {
        serializedName: "properties.criteria",
        type: {
          name: "Composite",
          className: "MetricAlertCriteria"
        }
      },
      autoMitigate: {
        serializedName: "properties.autoMitigate",
        type: {
          name: "Boolean"
        }
      },
      actions: {
        serializedName: "properties.actions",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "MetricAlertAction"
            }
          }
        }
      },
      lastUpdatedTime: {
        serializedName: "properties.lastUpdatedTime",
        readOnly: true,
        type: {
          name: "DateTime"
        }
      },
      isMigrated: {
        serializedName: "properties.isMigrated",
        readOnly: true,
        type: {
          name: "Boolean"
        }
      }
    }
  }
};

export const ActivityLogAlertResource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ActivityLogAlertResource",
    modelProperties: {
      ...Resource.type.modelProperties,
      scopes: {
        serializedName: "properties.scopes",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      },
      enabled: {
        defaultValue: true,
        serializedName: "properties.enabled",
        type: {
          name: "Boolean"
        }
      },
      condition: {
        serializedName: "properties.condition",
        type: {
          name: "Composite",
          className: "ActivityLogAlertAllOfCondition"
        }
      },
      actions: {
        serializedName: "properties.actions",
        type: {
          name: "Composite",
          className: "ActivityLogAlertActionList"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const ErrorResponseCommon: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ErrorResponseCommon",
    modelProperties: {
      ...ErrorResponse.type.modelProperties,
      details: {
        serializedName: "details",
        readOnly: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ErrorResponseCommon"
            }
          }
        }
      },
      additionalInfo: {
        serializedName: "additionalInfo",
        readOnly: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ErrorAdditionalInfo"
            }
          }
        }
      }
    }
  }
};

export const ThresholdRuleCondition: coreClient.CompositeMapper = {
  serializedName:
    "Microsoft.Azure.Management.Insights.Models.ThresholdRuleCondition",
  type: {
    name: "Composite",
    className: "ThresholdRuleCondition",
    uberParent: "RuleCondition",
    polymorphicDiscriminator: RuleCondition.type.polymorphicDiscriminator,
    modelProperties: {
      ...RuleCondition.type.modelProperties,
      operator: {
        serializedName: "operator",
        required: true,
        type: {
          name: "Enum",
          allowedValues: [
            "GreaterThan",
            "GreaterThanOrEqual",
            "LessThan",
            "LessThanOrEqual"
          ]
        }
      },
      threshold: {
        serializedName: "threshold",
        required: true,
        type: {
          name: "Number"
        }
      },
      windowSize: {
        serializedName: "windowSize",
        type: {
          name: "TimeSpan"
        }
      },
      timeAggregation: {
        serializedName: "timeAggregation",
        type: {
          name: "Enum",
          allowedValues: ["Average", "Minimum", "Maximum", "Total", "Last"]
        }
      }
    }
  }
};

export const LocationThresholdRuleCondition: coreClient.CompositeMapper = {
  serializedName:
    "Microsoft.Azure.Management.Insights.Models.LocationThresholdRuleCondition",
  type: {
    name: "Composite",
    className: "LocationThresholdRuleCondition",
    uberParent: "RuleCondition",
    polymorphicDiscriminator: RuleCondition.type.polymorphicDiscriminator,
    modelProperties: {
      ...RuleCondition.type.modelProperties,
      windowSize: {
        serializedName: "windowSize",
        type: {
          name: "TimeSpan"
        }
      },
      failedLocationCount: {
        constraints: {
          InclusiveMinimum: 0
        },
        serializedName: "failedLocationCount",
        required: true,
        type: {
          name: "Number"
        }
      }
    }
  }
};

export const ManagementEventRuleCondition: coreClient.CompositeMapper = {
  serializedName:
    "Microsoft.Azure.Management.Insights.Models.ManagementEventRuleCondition",
  type: {
    name: "Composite",
    className: "ManagementEventRuleCondition",
    uberParent: "RuleCondition",
    polymorphicDiscriminator: RuleCondition.type.polymorphicDiscriminator,
    modelProperties: {
      ...RuleCondition.type.modelProperties,
      aggregation: {
        serializedName: "aggregation",
        type: {
          name: "Composite",
          className: "ManagementEventAggregationCondition"
        }
      }
    }
  }
};

export const RuleMetricDataSource: coreClient.CompositeMapper = {
  serializedName:
    "Microsoft.Azure.Management.Insights.Models.RuleMetricDataSource",
  type: {
    name: "Composite",
    className: "RuleMetricDataSource",
    uberParent: "RuleDataSource",
    polymorphicDiscriminator: RuleDataSource.type.polymorphicDiscriminator,
    modelProperties: {
      ...RuleDataSource.type.modelProperties,
      metricName: {
        serializedName: "metricName",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const RuleManagementEventDataSource: coreClient.CompositeMapper = {
  serializedName:
    "Microsoft.Azure.Management.Insights.Models.RuleManagementEventDataSource",
  type: {
    name: "Composite",
    className: "RuleManagementEventDataSource",
    uberParent: "RuleDataSource",
    polymorphicDiscriminator: RuleDataSource.type.polymorphicDiscriminator,
    modelProperties: {
      ...RuleDataSource.type.modelProperties,
      eventName: {
        serializedName: "eventName",
        type: {
          name: "String"
        }
      },
      eventSource: {
        serializedName: "eventSource",
        type: {
          name: "String"
        }
      },
      level: {
        serializedName: "level",
        type: {
          name: "String"
        }
      },
      operationName: {
        serializedName: "operationName",
        type: {
          name: "String"
        }
      },
      resourceGroupName: {
        serializedName: "resourceGroupName",
        type: {
          name: "String"
        }
      },
      resourceProviderName: {
        serializedName: "resourceProviderName",
        type: {
          name: "String"
        }
      },
      status: {
        serializedName: "status",
        type: {
          name: "String"
        }
      },
      subStatus: {
        serializedName: "subStatus",
        type: {
          name: "String"
        }
      },
      claims: {
        serializedName: "claims",
        type: {
          name: "Composite",
          className: "RuleManagementEventClaimsDataSource"
        }
      }
    }
  }
};

export const RuleEmailAction: coreClient.CompositeMapper = {
  serializedName: "Microsoft.Azure.Management.Insights.Models.RuleEmailAction",
  type: {
    name: "Composite",
    className: "RuleEmailAction",
    uberParent: "RuleAction",
    polymorphicDiscriminator: RuleAction.type.polymorphicDiscriminator,
    modelProperties: {
      ...RuleAction.type.modelProperties,
      sendToServiceOwners: {
        serializedName: "sendToServiceOwners",
        type: {
          name: "Boolean"
        }
      },
      customEmails: {
        serializedName: "customEmails",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const RuleWebhookAction: coreClient.CompositeMapper = {
  serializedName:
    "Microsoft.Azure.Management.Insights.Models.RuleWebhookAction",
  type: {
    name: "Composite",
    className: "RuleWebhookAction",
    uberParent: "RuleAction",
    polymorphicDiscriminator: RuleAction.type.polymorphicDiscriminator,
    modelProperties: {
      ...RuleAction.type.modelProperties,
      serviceUri: {
        serializedName: "serviceUri",
        type: {
          name: "String"
        }
      },
      properties: {
        serializedName: "properties",
        type: {
          name: "Dictionary",
          value: { type: { name: "String" } }
        }
      }
    }
  }
};

export const DiagnosticSettingsResource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DiagnosticSettingsResource",
    modelProperties: {
      ...ProxyOnlyResource.type.modelProperties,
      storageAccountId: {
        serializedName: "properties.storageAccountId",
        type: {
          name: "String"
        }
      },
      serviceBusRuleId: {
        serializedName: "properties.serviceBusRuleId",
        type: {
          name: "String"
        }
      },
      eventHubAuthorizationRuleId: {
        serializedName: "properties.eventHubAuthorizationRuleId",
        type: {
          name: "String"
        }
      },
      eventHubName: {
        serializedName: "properties.eventHubName",
        type: {
          name: "String"
        }
      },
      metrics: {
        serializedName: "properties.metrics",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "MetricSettings"
            }
          }
        }
      },
      logs: {
        serializedName: "properties.logs",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "LogSettings"
            }
          }
        }
      },
      workspaceId: {
        serializedName: "properties.workspaceId",
        type: {
          name: "String"
        }
      },
      logAnalyticsDestinationType: {
        serializedName: "properties.logAnalyticsDestinationType",
        type: {
          name: "String"
        }
      }
    }
  }
};

export const DiagnosticSettingsCategoryResource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DiagnosticSettingsCategoryResource",
    modelProperties: {
      ...ProxyOnlyResource.type.modelProperties,
      categoryType: {
        serializedName: "properties.categoryType",
        type: {
          name: "Enum",
          allowedValues: ["Metrics", "Logs"]
        }
      }
    }
  }
};

export const ActionGroupResource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ActionGroupResource",
    modelProperties: {
      ...AzureResource.type.modelProperties,
      groupShortName: {
        constraints: {
          MaxLength: 12
        },
        serializedName: "properties.groupShortName",
        type: {
          name: "String"
        }
      },
      enabled: {
        defaultValue: true,
        serializedName: "properties.enabled",
        type: {
          name: "Boolean"
        }
      },
      emailReceivers: {
        serializedName: "properties.emailReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "EmailReceiver"
            }
          }
        }
      },
      smsReceivers: {
        serializedName: "properties.smsReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "SmsReceiver"
            }
          }
        }
      },
      webhookReceivers: {
        serializedName: "properties.webhookReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "WebhookReceiver"
            }
          }
        }
      },
      itsmReceivers: {
        serializedName: "properties.itsmReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ItsmReceiver"
            }
          }
        }
      },
      azureAppPushReceivers: {
        serializedName: "properties.azureAppPushReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "AzureAppPushReceiver"
            }
          }
        }
      },
      automationRunbookReceivers: {
        serializedName: "properties.automationRunbookReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "AutomationRunbookReceiver"
            }
          }
        }
      },
      voiceReceivers: {
        serializedName: "properties.voiceReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "VoiceReceiver"
            }
          }
        }
      },
      logicAppReceivers: {
        serializedName: "properties.logicAppReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "LogicAppReceiver"
            }
          }
        }
      },
      azureFunctionReceivers: {
        serializedName: "properties.azureFunctionReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "AzureFunctionReceiver"
            }
          }
        }
      },
      armRoleReceivers: {
        serializedName: "properties.armRoleReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "ArmRoleReceiver"
            }
          }
        }
      },
      eventHubReceivers: {
        serializedName: "properties.eventHubReceivers",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "EventHubReceiver"
            }
          }
        }
      }
    }
  }
};

export const MetricAlertSingleResourceMultipleMetricCriteria: coreClient.CompositeMapper = {
  serializedName:
    "Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria",
  type: {
    name: "Composite",
    className: "MetricAlertSingleResourceMultipleMetricCriteria",
    uberParent: "MetricAlertCriteria",
    additionalProperties: { type: { name: "Object" } },
    polymorphicDiscriminator: MetricAlertCriteria.type.polymorphicDiscriminator,
    modelProperties: {
      ...MetricAlertCriteria.type.modelProperties,
      allOf: {
        serializedName: "allOf",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "MetricCriteria"
            }
          }
        }
      }
    }
  }
};

export const WebtestLocationAvailabilityCriteria: coreClient.CompositeMapper = {
  serializedName: "Microsoft.Azure.Monitor.WebtestLocationAvailabilityCriteria",
  type: {
    name: "Composite",
    className: "WebtestLocationAvailabilityCriteria",
    uberParent: "MetricAlertCriteria",
    additionalProperties: { type: { name: "Object" } },
    polymorphicDiscriminator: MetricAlertCriteria.type.polymorphicDiscriminator,
    modelProperties: {
      ...MetricAlertCriteria.type.modelProperties,
      webTestId: {
        serializedName: "webTestId",
        required: true,
        type: {
          name: "String"
        }
      },
      componentId: {
        serializedName: "componentId",
        required: true,
        type: {
          name: "String"
        }
      },
      failedLocationCount: {
        serializedName: "failedLocationCount",
        required: true,
        type: {
          name: "Number"
        }
      }
    }
  }
};

export const MetricAlertMultipleResourceMultipleMetricCriteria: coreClient.CompositeMapper = {
  serializedName:
    "Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria",
  type: {
    name: "Composite",
    className: "MetricAlertMultipleResourceMultipleMetricCriteria",
    uberParent: "MetricAlertCriteria",
    additionalProperties: { type: { name: "Object" } },
    polymorphicDiscriminator: MetricAlertCriteria.type.polymorphicDiscriminator,
    modelProperties: {
      ...MetricAlertCriteria.type.modelProperties,
      allOf: {
        serializedName: "allOf",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "MultiMetricCriteria"
            }
          }
        }
      }
    }
  }
};

export const AlertingAction: coreClient.CompositeMapper = {
  serializedName:
    "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.AlertingAction",
  type: {
    name: "Composite",
    className: "AlertingAction",
    uberParent: "Action",
    polymorphicDiscriminator: Action.type.polymorphicDiscriminator,
    modelProperties: {
      ...Action.type.modelProperties,
      severity: {
        serializedName: "severity",
        required: true,
        type: {
          name: "String"
        }
      },
      aznsAction: {
        serializedName: "aznsAction",
        type: {
          name: "Composite",
          className: "AzNsActionGroup"
        }
      },
      throttlingInMin: {
        serializedName: "throttlingInMin",
        type: {
          name: "Number"
        }
      },
      trigger: {
        serializedName: "trigger",
        type: {
          name: "Composite",
          className: "TriggerCondition"
        }
      }
    }
  }
};

export const LogToMetricAction: coreClient.CompositeMapper = {
  serializedName:
    "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.LogToMetricAction",
  type: {
    name: "Composite",
    className: "LogToMetricAction",
    uberParent: "Action",
    polymorphicDiscriminator: Action.type.polymorphicDiscriminator,
    modelProperties: {
      ...Action.type.modelProperties,
      criteria: {
        serializedName: "criteria",
        required: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "Criteria"
            }
          }
        }
      }
    }
  }
};

export const LogSearchRuleResource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "LogSearchRuleResource",
    modelProperties: {
      ...ResourceAutoGenerated.type.modelProperties,
      createdWithApiVersion: {
        serializedName: "properties.createdWithApiVersion",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      isLegacyLogAnalyticsRule: {
        serializedName: "properties.isLegacyLogAnalyticsRule",
        readOnly: true,
        type: {
          name: "Boolean"
        }
      },
      description: {
        serializedName: "properties.description",
        type: {
          name: "String"
        }
      },
      displayName: {
        serializedName: "properties.displayName",
        type: {
          name: "String"
        }
      },
      autoMitigate: {
        defaultValue: false,
        serializedName: "properties.autoMitigate",
        type: {
          name: "Boolean"
        }
      },
      enabled: {
        serializedName: "properties.enabled",
        type: {
          name: "String"
        }
      },
      lastUpdatedTime: {
        serializedName: "properties.lastUpdatedTime",
        readOnly: true,
        type: {
          name: "DateTime"
        }
      },
      provisioningState: {
        serializedName: "properties.provisioningState",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      source: {
        serializedName: "properties.source",
        type: {
          name: "Composite",
          className: "Source"
        }
      },
      schedule: {
        serializedName: "properties.schedule",
        type: {
          name: "Composite",
          className: "Schedule"
        }
      },
      action: {
        serializedName: "properties.action",
        type: {
          name: "Composite",
          className: "Action"
        }
      }
    }
  }
};

export const VMInsightsOnboardingStatus: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "VMInsightsOnboardingStatus",
    modelProperties: {
      ...ProxyResource.type.modelProperties,
      resourceId: {
        serializedName: "properties.resourceId",
        type: {
          name: "String"
        }
      },
      onboardingStatus: {
        serializedName: "properties.onboardingStatus",
        type: {
          name: "String"
        }
      },
      dataStatus: {
        serializedName: "properties.dataStatus",
        type: {
          name: "String"
        }
      },
      data: {
        serializedName: "properties.data",
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "DataContainer"
            }
          }
        }
      }
    }
  }
};

export const PrivateEndpointConnection: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "PrivateEndpointConnection",
    modelProperties: {
      ...ProxyResource.type.modelProperties,
      privateEndpoint: {
        serializedName: "properties.privateEndpoint",
        type: {
          name: "Composite",
          className: "PrivateEndpointProperty"
        }
      },
      privateLinkServiceConnectionState: {
        serializedName: "properties.privateLinkServiceConnectionState",
        type: {
          name: "Composite",
          className: "PrivateLinkServiceConnectionStateProperty"
        }
      },
      provisioningState: {
        serializedName: "properties.provisioningState",
        readOnly: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const PrivateLinkResource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "PrivateLinkResource",
    modelProperties: {
      ...ProxyResource.type.modelProperties,
      groupId: {
        serializedName: "properties.groupId",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      requiredMembers: {
        serializedName: "properties.requiredMembers",
        readOnly: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "String"
            }
          }
        }
      }
    }
  }
};

export const ScopedResource: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "ScopedResource",
    modelProperties: {
      ...ProxyResource.type.modelProperties,
      linkedResourceId: {
        serializedName: "properties.linkedResourceId",
        type: {
          name: "String"
        }
      },
      provisioningState: {
        serializedName: "properties.provisioningState",
        readOnly: true,
        type: {
          name: "String"
        }
      }
    }
  }
};

export const AzureMonitorPrivateLinkScope: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "AzureMonitorPrivateLinkScope",
    modelProperties: {
      ...PrivateLinkScopesResource.type.modelProperties,
      provisioningState: {
        serializedName: "properties.provisioningState",
        readOnly: true,
        type: {
          name: "String"
        }
      },
      privateEndpointConnections: {
        serializedName: "properties.privateEndpointConnections",
        readOnly: true,
        type: {
          name: "Sequence",
          element: {
            type: {
              name: "Composite",
              className: "PrivateEndpointConnection"
            }
          }
        }
      }
    }
  }
};

export const DataCollectionEndpointResourceProperties: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionEndpointResourceProperties",
    modelProperties: {
      ...DataCollectionEndpoint.type.modelProperties
    }
  }
};

export const DataCollectionEndpointConfigurationAccess: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionEndpointConfigurationAccess",
    modelProperties: {
      ...ConfigurationAccessEndpointSpec.type.modelProperties
    }
  }
};

export const DataCollectionEndpointLogsIngestion: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionEndpointLogsIngestion",
    modelProperties: {
      ...LogsIngestionEndpointSpec.type.modelProperties
    }
  }
};

export const DataCollectionEndpointNetworkAcls: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionEndpointNetworkAcls",
    modelProperties: {
      ...NetworkRuleSet.type.modelProperties
    }
  }
};

export const DataCollectionEndpointResourceSystemData: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionEndpointResourceSystemData",
    modelProperties: {
      ...SystemData.type.modelProperties
    }
  }
};

export const DataCollectionRuleAssociationProxyOnlyResourceSystemData: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionRuleAssociationProxyOnlyResourceSystemData",
    modelProperties: {
      ...SystemData.type.modelProperties
    }
  }
};

export const DataCollectionRuleResourceSystemData: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionRuleResourceSystemData",
    modelProperties: {
      ...SystemData.type.modelProperties
    }
  }
};

export const DataCollectionRuleAssociationProxyOnlyResourceProperties: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionRuleAssociationProxyOnlyResourceProperties",
    modelProperties: {
      ...DataCollectionRuleAssociation.type.modelProperties
    }
  }
};

export const DataCollectionRuleResourceProperties: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionRuleResourceProperties",
    modelProperties: {
      ...DataCollectionRule.type.modelProperties
    }
  }
};

export const DataCollectionRuleDataSources: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionRuleDataSources",
    modelProperties: {
      ...DataSourcesSpec.type.modelProperties
    }
  }
};

export const DataCollectionRuleDestinations: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DataCollectionRuleDestinations",
    modelProperties: {
      ...DestinationsSpec.type.modelProperties
    }
  }
};

export const DestinationsSpecAzureMonitorMetrics: coreClient.CompositeMapper = {
  type: {
    name: "Composite",
    className: "DestinationsSpecAzureMonitorMetrics",
    modelProperties: {
      ...AzureMonitorMetricsDestination.type.modelProperties
    }
  }
};

export const MetricCriteria: coreClient.CompositeMapper = {
  serializedName: "StaticThresholdCriterion",
  type: {
    name: "Composite",
    className: "MetricCriteria",
    uberParent: "MultiMetricCriteria",
    additionalProperties: { type: { name: "Object" } },
    polymorphicDiscriminator: MultiMetricCriteria.type.polymorphicDiscriminator,
    modelProperties: {
      ...MultiMetricCriteria.type.modelProperties,
      operator: {
        serializedName: "operator",
        required: true,
        type: {
          name: "String"
        }
      },
      threshold: {
        serializedName: "threshold",
        required: true,
        type: {
          name: "Number"
        }
      }
    }
  }
};

export const DynamicMetricCriteria: coreClient.CompositeMapper = {
  serializedName: "DynamicThresholdCriterion",
  type: {
    name: "Composite",
    className: "DynamicMetricCriteria",
    uberParent: "MultiMetricCriteria",
    additionalProperties: { type: { name: "Object" } },
    polymorphicDiscriminator: MultiMetricCriteria.type.polymorphicDiscriminator,
    modelProperties: {
      ...MultiMetricCriteria.type.modelProperties,
      operator: {
        serializedName: "operator",
        required: true,
        type: {
          name: "String"
        }
      },
      alertSensitivity: {
        serializedName: "alertSensitivity",
        required: true,
        type: {
          name: "String"
        }
      },
      failingPeriods: {
        serializedName: "failingPeriods",
        type: {
          name: "Composite",
          className: "DynamicThresholdFailingPeriods"
        }
      },
      ignoreDataBefore: {
        serializedName: "ignoreDataBefore",
        type: {
          name: "DateTime"
        }
      }
    }
  }
};

export let discriminators = {
  RuleCondition: RuleCondition,
  RuleDataSource: RuleDataSource,
  RuleAction: RuleAction,
  MetricAlertCriteria: MetricAlertCriteria,
  Action: Action,
  MultiMetricCriteria: MultiMetricCriteria,
  "RuleCondition.Microsoft.Azure.Management.Insights.Models.ThresholdRuleCondition": ThresholdRuleCondition,
  "RuleCondition.Microsoft.Azure.Management.Insights.Models.LocationThresholdRuleCondition": LocationThresholdRuleCondition,
  "RuleCondition.Microsoft.Azure.Management.Insights.Models.ManagementEventRuleCondition": ManagementEventRuleCondition,
  "RuleDataSource.Microsoft.Azure.Management.Insights.Models.RuleMetricDataSource": RuleMetricDataSource,
  "RuleDataSource.Microsoft.Azure.Management.Insights.Models.RuleManagementEventDataSource": RuleManagementEventDataSource,
  "RuleAction.Microsoft.Azure.Management.Insights.Models.RuleEmailAction": RuleEmailAction,
  "RuleAction.Microsoft.Azure.Management.Insights.Models.RuleWebhookAction": RuleWebhookAction,
  "MetricAlertCriteria.Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria": MetricAlertSingleResourceMultipleMetricCriteria,
  "MetricAlertCriteria.Microsoft.Azure.Monitor.WebtestLocationAvailabilityCriteria": WebtestLocationAvailabilityCriteria,
  "MetricAlertCriteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria": MetricAlertMultipleResourceMultipleMetricCriteria,
  "Action.Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.AlertingAction": AlertingAction,
  "Action.Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.LogToMetricAction": LogToMetricAction,
  "MultiMetricCriteria.StaticThresholdCriterion": MetricCriteria,
  "MultiMetricCriteria.DynamicThresholdCriterion": DynamicMetricCriteria
};