/*! 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.stackConnectors_bundle_jsonpfunction=window.stackConnectors_bundle_jsonpfunction||[]).push([[8,37],{125:function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return O}));var a=n(1),o=n.n(a),r=n(2),s=n(27),i=n(25),c=n(26),u=n(28),l=n(53),d=n(16),A=n(3),p=n(40),f=n(47);var g=n(9);const{emptyField:m}=u.fieldValidators,O=({readOnly:e,isEdit:t})=>{const{getFieldDefaultValue:n}=Object(c.useFormContext)(),[{config:u,id:O,name:I}]=Object(c.useFormData)({watch:["config.apiProvider"]}),{services:{application:{navigateToUrl:b}}}=Object(r.useKibana)(),{dashboardUrl:k}=(({connectorId:e})=>{const{dashboard:t,http:n,notifications:{toasts:o},spaces:s}=Object(r.useKibana)().services,[i,c]=Object(a.useState)(null);Object(a.useEffect)((()=>{let e=!1;return s&&s.getActiveSpace().then((t=>{e||c(t.id)})),()=>{e=!0}}),[s]);const[u,g]=Object(a.useState)(!1),[m,O]=Object(a.useState)(null),[I,b]=Object(a.useState)(!1),k=Object(a.useRef)(new AbortController),E=Object(a.useCallback)((n=>{var a;const o=null==t||null===(a=t.locator)||void 0===a?void 0:a.getRedirectUrl({query:{language:"kuery",query:`kibana.saved_objects: { id : ${e} }`},dashboardId:n});O(null!=o?o:null)}),[e,null==t?void 0:t.locator]);return Object(a.useEffect)((()=>{let t=!1;return null!=i&&e.length>0&&!I&&(k.current.abort(),(async a=>{k.current=new AbortController,t||g(!0);try{const i=await async function({http:e,signal:t,dashboardId:n,connectorId:a}){const o=await e.post(`${d.BASE_ACTION_API_PATH}/connector/${encodeURIComponent(a)}/_execute`,{body:JSON.stringify({params:{subAction:A.e.DASHBOARD,subActionParams:{dashboardId:n}}}),signal:t});return Object(p.a)(o)}({http:n,signal:k.current.signal,connectorId:e,dashboardId:a});var r,s;t||(b(!0),g(!1),null!==(r=i.data)&&void 0!==r&&r.available&&E(a),i.status&&"error"===i.status&&o.addDanger({title:f.GET_DASHBOARD_API_ERROR,text:`${null!==(s=i.serviceMessage)&&void 0!==s?s:i.message}`}))}catch(e){t||(b(!0),g(!1),o.addDanger({title:f.GET_DASHBOARD_API_ERROR,text:e.message}))}})(Object(l.e)(i))),()=>{t=!0,g(!1),k.current.abort()}}),[e,I,m,n,E,i,o]),{isLoading:u,dashboardUrl:m}})({connectorId:O}),E=Object(a.useCallback)((e=>{e.preventDefault(),k&&b(k)}),[k,b]),_=Object(a.useMemo)((()=>{var e;return null!==(e=n("config.apiProvider"))&&void 0!==e?e:A.d.OpenAi}),[n]);return Object(g.jsx)(o.a.Fragment,null,Object(g.jsx)(c.UseField,{path:"config.apiProvider",component:s.SelectField,config:{label:f.API_PROVIDER_LABEL,defaultValue:_,validations:[{validator:m(f.API_PROVIDER_REQUIRED)}]},componentProps:{euiFieldProps:{"data-test-subj":"config.apiProvider-select",options:l.h,fullWidth:!0,hasNoInitialSelection:!0,disabled:e,readOnly:e}}}),Object(g.jsx)(i.EuiSpacer,{size:"s"}),null!=u&&u.apiProvider===A.d.OpenAi&&Object(g.jsx)(r.SimpleConnectorForm,{isEdit:t,readOnly:e,configFormSchema:l.f,secretsFormSchema:l.g}),null!=u&&u.apiProvider===A.d.AzureAi&&Object(g.jsx)(r.SimpleConnectorForm,{isEdit:t,readOnly:e,configFormSchema:l.c,secretsFormSchema:l.d}),t&&null!=k&&Object(g.jsx)(i.EuiLink,{"data-test-subj":"link-gen-ai-token-dashboard",onClick:E},f.USAGE_DASHBOARD_LINK(_,I)))}},40:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));const a=({connector_id:e,service_message:t,...n})=>({...n,actionId:e,...t&&{serviceMessage:t}})},47:function(e,t,n){"use strict";n.r(t),n.d(t,"API_URL_LABEL",(function(){return o})),n.d(t,"API_KEY_LABEL",(function(){return r})),n.d(t,"DEFAULT_MODEL_LABEL",(function(){return s})),n.d(t,"DEFAULT_MODEL_TOOLTIP_CONTENT",(function(){return i})),n.d(t,"API_PROVIDER_LABEL",(function(){return c})),n.d(t,"OPEN_AI",(function(){return u})),n.d(t,"AZURE_AI",(function(){return l})),n.d(t,"DOCUMENTATION",(function(){return d})),n.d(t,"URL_LABEL",(function(){return A})),n.d(t,"BODY_REQUIRED",(function(){return p})),n.d(t,"BODY_INVALID",(function(){return f})),n.d(t,"ACTION_REQUIRED",(function(){return g})),n.d(t,"INVALID_ACTION",(function(){return m})),n.d(t,"API_PROVIDER_REQUIRED",(function(){return O})),n.d(t,"USAGE_DASHBOARD_LINK",(function(){return I})),n.d(t,"GET_DASHBOARD_API_ERROR",(function(){return b}));var a=n(0);const o=a.i18n.translate("xpack.stackConnectors.components.genAi.apiUrlTextFieldLabel",{defaultMessage:"URL"}),r=a.i18n.translate("xpack.stackConnectors.components.genAi.apiKeySecret",{defaultMessage:"API key"}),s=a.i18n.translate("xpack.stackConnectors.components.genAi.defaultModelTextFieldLabel",{defaultMessage:"Default model"}),i=a.i18n.translate("xpack.stackConnectors.components.genAi.defaultModelTooltipContent",{defaultMessage:"If a request does not include a model, it uses the default."}),c=a.i18n.translate("xpack.stackConnectors.components.genAi.apiProviderLabel",{defaultMessage:"Select an OpenAI provider"}),u=a.i18n.translate("xpack.stackConnectors.components.genAi.openAi",{defaultMessage:"OpenAI"}),l=a.i18n.translate("xpack.stackConnectors.components.genAi.azureAi",{defaultMessage:"Azure OpenAI"}),d=a.i18n.translate("xpack.stackConnectors.components.genAi.documentation",{defaultMessage:"documentation"}),A=a.i18n.translate("xpack.stackConnectors.components.genAi.urlTextFieldLabel",{defaultMessage:"URL"}),p=a.i18n.translate("xpack.stackConnectors.components.genAi.error.requiredGenerativeAiBodyText",{defaultMessage:"Body is required."}),f=a.i18n.translate("xpack.stackConnectors.security.genAi.params.error.invalidBodyText",{defaultMessage:"Body does not have a valid JSON format."}),g=a.i18n.translate("xpack.stackConnectors.security.genAi.params.error.requiredActionText",{defaultMessage:"Action is required."}),m=a.i18n.translate("xpack.stackConnectors.security.genAi.params.error.invalidActionText",{defaultMessage:"Invalid action name."}),O=a.i18n.translate("xpack.stackConnectors.components.genAi.error.requiredApiProviderText",{defaultMessage:"API provider is required."}),I=(e,t)=>a.i18n.translate("xpack.stackConnectors.components.genAi.dashboardLink",{values:{apiProvider:e,connectorName:t},defaultMessage:'View {apiProvider} Usage Dashboard for "{ connectorName }" Connector'}),b=a.i18n.translate("xpack.stackConnectors.components.genAi.error.dashboardApiError",{defaultMessage:"Error finding Generative AI Token Usage Dashboard."})},53:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return u})),n.d(t,"f",(function(){return l})),n.d(t,"c",(function(){return d})),n.d(t,"g",(function(){return A})),n.d(t,"d",(function(){return p})),n.d(t,"h",(function(){return f})),n.d(t,"e",(function(){return g})),n(1);var a=n(29),o=n(25),r=n(3),s=n(47),i=n(9);const c='{\n "messages": [{\n "role":"user",\n "content":"Hello world"\n }]\n}',u='{\n "messages": [{\n "role":"user",\n "content":"Hello world"\n }]\n}',l=[{id:"apiUrl",label:s.API_URL_LABEL,isUrlField:!0,defaultValue:"https://api.openai.com/v1/chat/completions",helpText:Object(i.jsx)(a.FormattedMessage,{defaultMessage:"The OpenAI API endpoint URL. For more information on the URL, refer to the {genAiAPIUrlDocs}.",id:"xpack.stackConnectors.components.genAi.openAiDocumentation",values:{genAiAPIUrlDocs:Object(i.jsx)(o.EuiLink,{"data-test-subj":"open-ai-api-doc",href:"https://platform.openai.com/docs/api-reference",target:"_blank"},`${s.OPEN_AI} ${s.DOCUMENTATION}`)}})},{id:"defaultModel",label:s.DEFAULT_MODEL_LABEL,helpText:Object(i.jsx)(a.FormattedMessage,{defaultMessage:"If a request does not include a model, it uses the default.",id:"xpack.stackConnectors.components.genAi.openAiDocumentationModel"}),defaultValue:r.a}],d=[{id:"apiUrl",label:s.API_URL_LABEL,isUrlField:!0,defaultValue:"https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/chat/completions?api-version={api-version}",helpText:Object(i.jsx)(a.FormattedMessage,{defaultMessage:"The Azure OpenAI API endpoint URL. For more information on the URL, refer to the {genAiAPIUrlDocs}.",id:"xpack.stackConnectors.components.genAi.azureAiDocumentation",values:{genAiAPIUrlDocs:Object(i.jsx)(o.EuiLink,{"data-test-subj":"azure-ai-api-doc",href:"https://learn.microsoft.com/en-us/azure/cognitive-services/openai/reference",target:"_blank"},`${s.AZURE_AI} ${s.DOCUMENTATION}`)}})}],A=[{id:"apiKey",label:s.API_KEY_LABEL,isPasswordField:!0,helpText:Object(i.jsx)(a.FormattedMessage,{defaultMessage:"The OpenAI API authentication key for HTTP Basic authentication. For more details about generating OpenAI API keys, refer to the {genAiAPIKeyDocs}.",id:"xpack.stackConnectors.components.genAi.openAiApiKeyDocumentation",values:{genAiAPIKeyDocs:Object(i.jsx)(o.EuiLink,{"data-test-subj":"open-ai-api-keys-doc",href:"https://platform.openai.com/account/api-keys",target:"_blank"},`${s.OPEN_AI} ${s.DOCUMENTATION}`)}})}],p=[{id:"apiKey",label:s.API_KEY_LABEL,isPasswordField:!0,helpText:Object(i.jsx)(a.FormattedMessage,{defaultMessage:"The Azure API key for HTTP Basic authentication. For more details about generating Azure OpenAI API keys, refer to the {genAiAPIKeyDocs}.",id:"xpack.stackConnectors.components.genAi.azureAiApiKeyDocumentation",values:{genAiAPIKeyDocs:Object(i.jsx)(o.EuiLink,{"data-test-subj":"azure-ai-api-keys-doc",href:"https://learn.microsoft.com/en-us/azure/cognitive-services/openai/reference#authentication",target:"_blank"},`${s.AZURE_AI} ${s.DOCUMENTATION}`)}})}],f=[{value:r.d.OpenAi,text:s.OPEN_AI,label:s.OPEN_AI},{value:r.d.AzureAi,text:s.AZURE_AI,label:s.AZURE_AI}],g=e=>`generative-ai-token-usage-${e}`}}]);