/*! Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one or more contributor license agreements. * Licensed under the Elastic License 2.0; you may not use this file except in compliance with the Elastic License 2.0. */ (window.ml_bundle_jsonpfunction=window.ml_bundle_jsonpfunction||[]).push([[12],{147:function(e,a,t){"use strict";t.d(a,"b",(function(){return o})),t.d(a,"a",(function(){return i}));var s=t(6),l=t(42),n=t(17);function o(e,a,t,o){const r=Object(n.d)();if(e.contains("job_id_empty"))a.jobId.valid=!1;else if(e.contains("job_id_invalid")){a.jobId.valid=!1;const e=s.i18n.translate("xpack.ml.newJob.wizard.validateJob.jobNameAllowedCharactersDescription",{defaultMessage:"Job ID can contain lowercase alphanumeric (a-z and 0-9), hyphens or underscores; must start and end with an alphanumeric character"});a.jobId.message=e}else if(e.contains("job_id_invalid_max_length"))a.jobId.valid=!1,a.jobId.message=s.i18n.translate("xpack.ml.newJob.wizard.validateJob.jobIdInvalidMaxLengthErrorMessage",{defaultMessage:"Job ID must be no more than {maxLength, plural, one {# character} other {# characters}} long.",values:{maxLength:l.b}});else if(e.contains("job_id_already_exists")){a.jobId.valid=!1;const e=s.i18n.translate("xpack.ml.newJob.wizard.validateJob.jobNameAlreadyExists",{defaultMessage:"Job ID already exists. A job ID cannot be the same as an existing job or group."});a.jobId.message=e}if(e.contains("job_group_id_invalid")){a.groupIds.valid=!1;const e=s.i18n.translate("xpack.ml.newJob.wizard.validateJob.jobGroupAllowedCharactersDescription",{defaultMessage:"Job group names can contain lowercase alphanumeric (a-z and 0-9), hyphens or underscores; must start and end with an alphanumeric character"});a.groupIds.message=e}else if(e.contains("job_group_id_invalid_max_length"))a.groupIds.valid=!1,a.groupIds.message=s.i18n.translate("xpack.ml.newJob.wizard.validateJob.jobGroupMaxLengthDescription",{defaultMessage:"Job group name must be no more than {maxLength, plural, one {# character} other {# characters}} long.",values:{maxLength:l.b}});else if(e.contains("job_group_id_already_exists")){a.groupIds.valid=!1;const e=s.i18n.translate("xpack.ml.newJob.wizard.validateJob.groupNameAlreadyExists",{defaultMessage:"Group ID already exists. A group ID cannot be the same as an existing job or group."});a.groupIds.message=e}if(e.contains("model_memory_limit_units_invalid")){a.modelMemoryLimit.valid=!1;const e=`${l.a.slice(0,l.a.length-1).join(", ")} or ${[...l.a].pop()}`,t=s.i18n.translate("xpack.ml.newJob.wizard.validateJob.modelMemoryLimitUnitsInvalidErrorMessage",{defaultMessage:"Model memory limit data unit unrecognized. It must be {str}",values:{str:e}});a.modelMemoryLimit.message=t}if(e.contains("model_memory_limit_invalid")){a.modelMemoryLimit.valid=!1;const e=(r.max_model_memory_limit||"").toUpperCase(),t=s.i18n.translate("xpack.ml.newJob.wizard.validateJob.modelMemoryLimitRangeInvalidErrorMessage",{defaultMessage:"Model memory limit cannot be higher than the maximum value of {maxModelMemoryLimit}",values:{maxModelMemoryLimit:e}});a.modelMemoryLimit.message=t}if(e.contains("detectors_duplicates")){a.duplicateDetectors.valid=!1;const e=s.i18n.translate("xpack.ml.newJob.wizard.validateJob.duplicatedDetectorsErrorMessage",{defaultMessage:"Duplicate detectors were found."});a.duplicateDetectors.message=e}if(e.contains("categorizer_detector_missing_per_partition_field")){a.categorizerMissingPerPartition.valid=!1;const e=s.i18n.translate("xpack.ml.newJob.wizard.validateJob.categorizerMissingPerPartitionFieldMessage",{defaultMessage:'Partition field must be set for detectors that reference "mlcategory" when per-partition categorization is enabled.'});a.categorizerMissingPerPartition.message=e}if(e.contains("categorizer_varying_per_partition_fields")){a.categorizerVaryingPerPartitionField.valid=!1;const e=s.i18n.translate("xpack.ml.newJob.wizard.validateJob.categorizerVaryingPerPartitionFieldNamesMessage",{defaultMessage:'Detectors with keyword "mlcategory" cannot have different partition_field_name when per-partition categorization is enabled.'});a.categorizerVaryingPerPartitionField.message=e}if(e.contains("bucket_span_empty")){a.bucketSpan.valid=!1;const e=s.i18n.translate("xpack.ml.newJob.wizard.validateJob.bucketSpanMustBeSetErrorMessage",{defaultMessage:"Bucket span must be set"});a.bucketSpan.message=e}else e.contains("bucket_span_invalid")&&(a.bucketSpan.valid=!1,a.bucketSpan.message=i(t.analysis_config.bucket_span));if(e.contains("query_empty")){a.query.valid=!1;const e=s.i18n.translate("xpack.ml.newJob.wizard.validateJob.queryCannotBeEmpty",{defaultMessage:"Datafeed query cannot be empty."});a.query.message=e}else if(e.contains("query_invalid")){a.query.valid=!1;const e=s.i18n.translate("xpack.ml.newJob.wizard.validateJob.queryIsInvalidEsQuery",{defaultMessage:"Datafeed query must be a valid elasticsearch query."});a.query.message=e}e.contains("query_delay_invalid")&&(a.queryDelay.valid=!1,a.queryDelay.message=i(o.query_delay)),e.contains("frequency_invalid")&&(a.frequency.valid=!1,a.frequency.message=i(o.frequency)),e.contains("missing_summary_count_field_name")&&(a.summaryCountField.valid=!1,a.summaryCountField.message=s.i18n.translate("xpack.ml.newJob.wizard.validateJob.summaryCountFieldMissing",{defaultMessage:"Required field as the datafeed uses aggregations."}))}function i(e){return s.i18n.translate("xpack.ml.newJob.wizard.validateJob.frequencyInvalidTimeIntervalFormatErrorMessage",{defaultMessage:"{value} is not a valid time interval format e.g. {thirtySeconds}, {tenMinutes}, {oneHour}, {sevenDays}. It also needs to be higher than zero.",values:{value:e,thirtySeconds:"30s",tenMinutes:"10m",oneHour:"1h",sevenDays:"7d"}})}},160:function(e,a,t){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var s=t(57),l=t(2),n=s.__importDefault(t(254));a.default=function(e,a,t){void 0===a&&(a=0),void 0===t&&(t=[]);var s=n.default(e,a),o=s[0],i=s[1],r=s[2];return l.useEffect(r,t),[o,i]}},254:function(e,a,t){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var s=t(2);a.default=function(e,a){void 0===a&&(a=0);var t=s.useRef(!1),l=s.useRef(),n=s.useRef(e),o=s.useCallback((function(){return t.current}),[]),i=s.useCallback((function(){t.current=!1,l.current&&clearTimeout(l.current),l.current=setTimeout((function(){t.current=!0,n.current()}),a)}),[a]),r=s.useCallback((function(){t.current=null,l.current&&clearTimeout(l.current)}),[]);return s.useEffect((function(){n.current=e}),[e]),s.useEffect((function(){return i(),r}),[a]),[o,r,i]}},262:function(e,a,t){"use strict";t.d(a,"a",(function(){return u}));var s=t(2),l=t(6),n=t(15),o=t(28),i=t(26),r=t(4);const u=({jobsAndGroupIds:e,onChange:a,adJobsApiService:t,errors:u,multiSelect:c=!1,label:d,allowSelectAll:b=!1,options:m})=>{const[g,p]=Object(s.useState)([]),j=Object(s.useMemo)((()=>new Set),[]),f=Object(s.useMemo)((()=>new Set),[]),v=Object(s.useMemo)((()=>(null!=e?e:[]).map((e=>({label:e})))),[e]),h=Object(s.useCallback)((async()=>{try{const{jobIds:e,groupIds:a}=await t.getAllJobAndGroupIds();e.forEach((e=>{j.add(e)})),a.forEach((e=>{f.add(e)})),p([...b?[{label:l.i18n.translate("xpack.ml.jobSelector.selectAllGroupLabel",{defaultMessage:"Select all"}),options:[{label:l.i18n.translate("xpack.ml.jobSelector.selectAllOptionLabel",{defaultMessage:"*"}),value:i.b}]}]:[],{label:l.i18n.translate("xpack.ml.jobSelector.jobOptionsLabel",{defaultMessage:"Jobs"}),options:e.map((e=>({label:e})))},...c?[{label:l.i18n.translate("xpack.ml.jobSelector.groupOptionsLabel",{defaultMessage:"Groups"}),options:a.map((e=>({label:e})))}]:[]])}catch(e){}}),[t]),x=Object(s.useCallback)((e=>{if(e.some((e=>e.value===i.b)))return void a({jobIds:[i.b]});const t=[],s=[];e.forEach((({label:e})=>{j.has(e)?t.push(e):f.has(e)?s.push(e):null!=m&&m.some((a=>{var t;return null===(t=a.options)||void 0===t?void 0:t.some((a=>a.label===e))}))&&t.push(e)})),a({...t.length>0?{jobIds:t}:{},...s.length>0?{groupIds:s}:{}})}),[j,f,m]);return Object(s.useEffect)((()=>{m||h()}),[]),Object(r.jsx)(o.EuiFormRow,{fullWidth:!0,label:null!=d?d:Object(r.jsx)(n.FormattedMessage,{id:"xpack.ml.jobSelector.formControlLabel",defaultMessage:"Select job"}),isInvalid:!(null==u||!u.length),error:u},Object(r.jsx)(o.EuiComboBox,{singleSelection:!c,selectedOptions:v,options:null!=m?m:g,onChange:x,fullWidth:!0,"data-test-subj":"mlAnomalyAlertJobSelection",isInvalid:!(null==u||!u.length)}))}},263:function(e,a,t){"use strict";t.d(a,"a",(function(){return d}));var s=t(100),l=t.n(s),n=t(28),o=t(2),i=t(147),r=t(58),u=t(31),c=t(4);const d=({value:e,onChange:a,label:t,...s})=>{const d=Object(o.useMemo)((()=>Object(r.composeValidators)(Object(u.g)())),[]),b=Object(o.useMemo)((()=>d(e)),[e]),m=!!e&&!!b;return Object(c.jsx)(n.EuiFormRow,{label:t,isInvalid:m,error:Object(i.a)(null!=e?e:void 0)},Object(c.jsx)(n.EuiFieldText,l()({},s,{placeholder:"15d, 6m",value:null!=e?e:"",onChange:e=>{a(e.target.value)},isInvalid:m})))}},264:function(e,a,t){"use strict";t.d(a,"a",(function(){return o})),t(2);var s=t(28),l=t(6),n=t(4);const o=({message:e})=>Object(n.jsx)(s.EuiFlexGroup,{gutterSize:"none",justifyContent:"flexEnd"},Object(n.jsx)(s.EuiFlexItem,{grow:!1},Object(n.jsx)(s.EuiBetaBadge,{label:l.i18n.translate("xpack.ml.anomalyDetectionAlert.betaBadgeLabel",{defaultMessage:"Beta"}),tooltipContent:e})))},684:function(e,a,t){"use strict";t.r(a);var s=t(2),l=t.n(s),n=t(28),o=t(6),i=t(15),r=t(160),u=t.n(r),c=t(20),d=t(22),b=t(262),m=t(53),g=t(25),p=t(9),j=t(255),f=t(26),v=t(263),h=t(4);const x=l.a.memo((({config:e,onChange:a,errors:t})=>{const o=Object(j.b)(e),r=Object(s.useCallback)((t=>{a({...null!=e?e:{},...t})}),[a,e]);return Object(h.jsx)(l.a.Fragment,null,Object(h.jsx)(n.EuiForm,{component:"div",isInvalid:!(null==t||!t.length),error:t},Object.entries(o).map((([e,a],t)=>{var s,u;return Object(h.jsx)(n.EuiDescribedFormGroup,{key:e,title:Object(h.jsx)("h4",null,null===(s=f.c[e])||void 0===s?void 0:s.name),description:null===(u=f.c[e])||void 0===u?void 0:u.description,fullWidth:!0,gutterSize:"s"},Object(h.jsx)(n.EuiFormRow,null,Object(h.jsx)(n.EuiSwitch,{label:Object(h.jsx)(i.FormattedMessage,{id:"xpack.ml.alertTypes.jobsHealthAlertingRule.testsSelection.enableTestLabel",defaultMessage:"Enable"}),onChange:r.bind(null,{[e]:{...o[e],enabled:!o[e].enabled}}),checked:o[e].enabled})),"delayedData"===e?Object(h.jsx)(l.a.Fragment,null,Object(h.jsx)(n.EuiSpacer,{size:"m"}),Object(h.jsx)(n.EuiFormRow,{label:Object(h.jsx)(l.a.Fragment,null,Object(h.jsx)(i.FormattedMessage,{id:"xpack.ml.alertTypes.jobsHealthAlertingRule.testsSelection.delayedData.docsCountLabel",defaultMessage:"Number of documents"}),Object(h.jsx)(n.EuiToolTip,{position:"bottom",content:Object(h.jsx)(i.FormattedMessage,{id:"xpack.ml.alertTypes.jobsHealthAlertingRule.testsSelection.delayedData.docsCountHint",defaultMessage:"The threshold for the amount of missing documents to alert upon."})},Object(h.jsx)(n.EuiIcon,{type:"questionInCircle"})))},Object(h.jsx)(n.EuiFieldNumber,{value:o.delayedData.docsCount,onChange:a=>{r({[e]:{...o[e],docsCount:Number(a.target.value)}})},min:1})),Object(h.jsx)(n.EuiSpacer,{size:"m"}),Object(h.jsx)(v.a,{label:Object(h.jsx)(l.a.Fragment,null,Object(h.jsx)(i.FormattedMessage,{id:"xpack.ml.alertTypes.jobsHealthAlertingRule.testsSelection.delayedData.timeIntervalLabel",defaultMessage:"Time interval"}),Object(h.jsx)(n.EuiToolTip,{position:"bottom",content:Object(h.jsx)(i.FormattedMessage,{id:"xpack.ml.alertTypes.jobsHealthAlertingRule.testsSelection.delayedData.timeIntervalHint",defaultMessage:"The lookback interval to check during rule execution for delayed data. By default derived from the longest bucket span and query delay."})},Object(h.jsx)(n.EuiIcon,{type:"questionInCircle"}))),value:o.delayedData.timeInterval,onChange:a=>{r({[e]:{...o[e],timeInterval:a}})}})):null)}))),Object(h.jsx)(n.EuiSpacer,{size:"l"}))}));var y=t(264);a.default=({ruleParams:e,setRuleParams:a,errors:t})=>{const{services:{http:l}}=Object(p.d)(),r=Object(s.useMemo)((()=>new g.a(l)),[l]),j=Object(s.useMemo)((()=>Object(m.jobsApiProvider)(r)),[r]),[v,O]=Object(s.useState)([]),M=Object(s.useMemo)((()=>{var a;return Object.values(null!==(a=e.includeJobs)&&void 0!==a?a:{}).flat()}),[e.includeJobs]),_=Object(s.useMemo)((()=>{var a;return Object.values(null!==(a=e.excludeJobs)&&void 0!==a?a:{}).flat()}),[e.excludeJobs]),J=Object(s.useCallback)((e=>t=>{a(e,t)}),[]),w=Object.values(t).flat(),k=w.length>0;return u()((function(){var a,t,s,l;const n=(null===(a=e.includeJobs)||void 0===a||null===(t=a.jobIds)||void 0===t?void 0:t[0])===f.b;n||null!==(s=e.includeJobs)&&void 0!==s&&null!==(l=s.groupIds)&&void 0!==l&&l.length?j.jobs(n?[]:e.includeJobs.groupIds).then((a=>{O([{label:o.i18n.translate("xpack.ml.jobSelector.jobOptionsLabel",{defaultMessage:"Jobs"}),options:a.map((e=>({label:e.job_id})))},{label:o.i18n.translate("xpack.ml.jobSelector.groupOptionsLabel",{defaultMessage:"Groups"}),options:[...new Set(a.map((e=>e.groups)).flat().filter((a=>{var t;return Object(d.a)(a)&&!(null!==(t=e.includeJobs.groupIds)&&void 0!==t&&t.includes(a))})))].map((e=>({label:e})))}])})):O([])}),500,[e.includeJobs]),Object(h.jsx)(n.EuiForm,{"data-test-subj":"mlJobsHealthAlertingRuleForm",invalidCallout:"none",error:w,isInvalid:k},Object(h.jsx)(y.a,{message:o.i18n.translate("xpack.ml.alertTypes.jobsHealthAlertingRule.betaBadgeTooltipContent",{defaultMessage:"Anomaly detection job health alerts are a beta feature. We'd love to hear your feedback."})}),Object(h.jsx)(b.a,{jobsAndGroupIds:M,adJobsApiService:j,onChange:Object(s.useCallback)(J("includeJobs"),[]),errors:Array.isArray(t.includeJobs)?t.includeJobs:[],multiSelect:!0,allowSelectAll:!0,label:Object(h.jsx)(i.FormattedMessage,{id:"xpack.ml.alertTypes.jobsHealthAlertingRule.includeJobs.label",defaultMessage:"Include jobs or groups"})}),Object(h.jsx)(n.EuiSpacer,{size:"m"}),Object(h.jsx)(b.a,{jobsAndGroupIds:_,adJobsApiService:j,onChange:Object(s.useCallback)((e=>{const a=J("excludeJobs");Object(c.a)(e)?a(e):a(null)}),[]),errors:Array.isArray(t.excludeJobs)?t.excludeJobs:[],multiSelect:!0,label:Object(h.jsx)(i.FormattedMessage,{id:"xpack.ml.alertTypes.jobsHealthAlertingRule.excludeJobs.label",defaultMessage:"Exclude jobs or groups"}),options:v}),Object(h.jsx)(n.EuiSpacer,{size:"m"}),Object(h.jsx)(x,{config:e.testsConfig,onChange:Object(s.useCallback)(J("testsConfig"),[]),errors:Array.isArray(t.testsConfig)?t.testsConfig:[]}))}}}]);