@JsonTypeInfo(use = JsonTypeInfo.Id.CUSTOM, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = TypedEntity.FIELD_META_TYPE, visible = true) @JsonSubTypes({ @JsonSubTypes.Type(name = AbsoluteRangeEntity.TYPE, value = AbsoluteRangeEntity.class), @JsonSubTypes.Type(name = RelativeRangeEntity.TYPE, value = RelativeRangeEntity.class), @JsonSubTypes.Type(name = KeywordRangeEntity.TYPE, value = KeywordRangeEntity.class) }) @JsonTypeResolver(ValueReferenceTypeResolverBuilder.class) public abstract class TimeRangeEntity implements TypedEntity { interface TimeRangeBuilder<SELF> extends TypedEntity.TypeBuilder<SELF> { } public static TimeRangeEntity of(TimeRange timeRange) { if (timeRange instanceof AbsoluteRange) { return AbsoluteRangeEntity.of((AbsoluteRange) timeRange); } else if (timeRange instanceof KeywordRange) { return KeywordRangeEntity.of((KeywordRange) timeRange); } else if (timeRange instanceof RelativeRange) { return RelativeRangeEntity.of((RelativeRange) timeRange); } else { throw new IllegalArgumentException("Unknown time range type " + timeRange.getClass()); } } }
@JsonTypeInfo(use = JsonTypeInfo.Id.CUSTOM, property = "type") @JsonTypeResolver(CustomTypeResolverBuilder.class) @JsonTypeIdResolver(CustomTypeIdResolver.class) public static class Group { public String getType() { return Group.class.getName(); } }
/** * Action descriptor. */ @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "odata.type") @JsonTypeName("Action") @JsonSubTypes({ @JsonSubTypes.Type(name = "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.AlertingAction", value = AlertingAction.class) }) @JsonTypeResolver(OdataTypeDiscriminatorTypeResolver.class) public class Action { }
/** * Action descriptor. */ @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "odata.type") @JsonTypeName("Action") @JsonSubTypes({ @JsonSubTypes.Type(name = "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.AlertingAction", value = AlertingAction.class) }) @JsonTypeResolver(OdataTypeDiscriminatorTypeResolver.class) public class Action { }
/** * The action that is performed when the alert rule becomes active, and when an * alert condition is resolved. */ @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "odata.type") @JsonTypeName("RuleAction") @JsonSubTypes({ @JsonSubTypes.Type(name = "Microsoft.Azure.Management.Insights.Models.RuleEmailAction", value = RuleEmailAction.class), @JsonSubTypes.Type(name = "Microsoft.Azure.Management.Insights.Models.RuleWebhookAction", value = RuleWebhookAction.class) }) @JsonTypeResolver(OdataTypeDiscriminatorTypeResolver.class) public class RuleAction { }
/** * The action that is performed when the alert rule becomes active, and when an * alert condition is resolved. */ @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "odata.type") @JsonTypeName("RuleAction") @JsonSubTypes({ @JsonSubTypes.Type(name = "Microsoft.Azure.Management.Insights.Models.RuleEmailAction", value = RuleEmailAction.class), @JsonSubTypes.Type(name = "Microsoft.Azure.Management.Insights.Models.RuleWebhookAction", value = RuleWebhookAction.class) }) @JsonTypeResolver(OdataTypeDiscriminatorTypeResolver.class) public class RuleAction { }
/** * Mix-in for Jackson that makes everything polymorphic. * <p>To be added to the configuration of {@link ObjectMapper} to make all Java objects polymorphic, * so we can handle them with custom {@link ModelDataTypeIdResolver} and {@link ModelDataTypeResolver}.</p> */ @SuppressWarnings("unused") @JsonTypeResolver(ModelDataTypeResolver.class) @JsonTypeIdResolver(ModelDataTypeIdResolver.class) @JsonTypeInfo(use = JsonTypeInfo.Id.CUSTOM, include = JsonTypeInfo.As.PROPERTY, property = DOLLAR_TYPE, visible = true) public interface PolymorphicObjectMixin { }
@JsonTypeResolver(YahooTypeResolver.class) abstract class FieldMixin {
@JsonSubTypes.Type(name = "Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria", value = MetricAlertSingleResourceMultipleMetricCriteria.class) }) @JsonTypeResolver(OdataTypeDiscriminatorTypeResolver.class) public class MetricAlertCriteria {
@JsonSubTypes.Type(name = "Microsoft.Azure.Management.Insights.Models.RuleManagementEventDataSource", value = RuleManagementEventDataSource.class) }) @JsonTypeResolver(OdataTypeDiscriminatorTypeResolver.class) public class RuleDataSource {
@JsonSubTypes.Type(name = "Microsoft.Azure.Management.Insights.Models.ManagementEventRuleCondition", value = ManagementEventRuleCondition.class) }) @JsonTypeResolver(OdataTypeDiscriminatorTypeResolver.class) public class RuleCondition {
@JsonSubTypes.Type(name = "Microsoft.Azure.Management.Insights.Models.RuleManagementEventDataSource", value = RuleManagementEventDataSource.class) }) @JsonTypeResolver(OdataTypeDiscriminatorTypeResolver.class) public class RuleDataSource {
@JsonSubTypes.Type(name = "Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria", value = MetricAlertSingleResourceMultipleMetricCriteria.class) }) @JsonTypeResolver(OdataTypeDiscriminatorTypeResolver.class) public class MetricAlertCriteria {
@JsonSubTypes.Type(name = "Microsoft.Azure.Management.Insights.Models.ManagementEventRuleCondition", value = ManagementEventRuleCondition.class) }) @JsonTypeResolver(OdataTypeDiscriminatorTypeResolver.class) public class RuleCondition {